분류 전체보기(66)
-
[바이너리 익스플로잇] Heap Unsafe-Unlink : Heap Overflow와 전역 변수로 heap이 관리될 때 발생하는 임의의 주소 쓰기(AAW) 공격
Heap Overflow로 인해 힙 청크에 페이크 청크를 만들 수 있고 하위 청크의 prev_inuse Flag를 덮어쓸 수 있을 때 Unsafe Unlink를 발생시켜 Unlink 루틴을 악용할 수 있다. 해당 바이너리가 전역 변수에서 Heap 메모리의 주소를 관리하고 있을 경우 Unlink 검증 과정을 우회하여 Heap 메모리 주소가 담겨있는 전역 변수를 해당 전역 변수의 주소 - 16 값으로 변조시킬 수 있고 Heap 메모리 쓰기를 통해 다시 해당 전역 변수의 값을 원하는 값으로 변조 시켜 임의의 주소 쓰기(AAW)가 가능해진다. 해당 공격은 Tcache에서는 발생하지 않으며, fastbin 역시 단일 링크 리스트를 사용하기에 해당 공격이 발생하지 않는다. Fake 청크 생성과 prev_inuse ..
2022.01.24 -
[웹 익스플로잇] Response-Based SQL injection : 강제 에러 발생으로 True, False 구분
기본적으로 Blind-Based SQL Injection 공격을 진행하려면 참, 거짓을 구별할 수 있는 컨텐츠가 있어야하는데 이것이 없을때 Response-Based SQL injection을 시도할 수 있다. Response-Based SQL injection은 참 혹은 거짓일때 에러를 발생시키는 SQL 문을 삽입하여 에러 발생 여부를 통해 참, 거짓을 판별할 수 있다. 이때 Response-Based SQL injection에서 사용되는 SQL 문은 반드시 '실행' 단계에서 에러가 발생해야한다. 기본적으로 구문 자체에 오류가 있을 경우 참, 거짓과 관계없이 무조건 에러가 나오기 때문이다. 해당 조건을 충족하는 구문은 다음과 같다. - Character Type - ORACLE : CASE WHEN [..
2022.01.14 -
[침투 테스팅] HackTheBox - Horizontall : 웹 프레임워크 RCE 취약점 Exploit
Nmap 스캔 결과에서는 일단 특별한 점이 보이지 않는다. 웹 서버에 접속하려고 하면 이제까지 시스템과 다른 반응을 보여주는데 http://horizontall.htb 이라는 주소로 리다이렉트 시켜버린다. 해당 주소는 실제로 존재하지 않는 주소이기에 당연히 없는 주소라고 뜨고 제대로 된 분석을 할 수가 없게 된다. 이건 해당 시스템이 horizontall.htb 라는 주소를 이용할 것이라고 가정하고 코드가 짜여있어서 그런 것이니 그냥 hosts 파일을 수정하여 침투 테스팅 시스템의 IP와 해당 도메인을 연결시켜주면 된다. sudo vi /etc/hosts 위 명령어로 hosts 파일을 열어서 시스템의 IP와 도메인을 기록해주자. hosts 파일을 수정하고 웹 서버에 접속해보면 다행히 제대로된 웹 페이지가..
2022.01.14 -
[침투 테스팅] HackTheBox - LogForge : Log4j 취약점으로 원데이 공격 (Log4shell: CVE-2021-44228)
HackTheBox의 LogForge 챌린지다. 일단 nmap으로 스캔해보면 웹 서버가 열려있고 8080포트로 http-proxy라는 서비스가 동작하고 있다. 이것은 내부적으로 웹 애플리케이션 서버(Tomcat등)가 Reverse Proxy로 동작하고 있을 확률이 높다는 것을 의미한다. 이외에도 SSH 서비스가 있지만 웬만해서는 RCE가 가능한 SSH 취약점이 있는 경우는 거의 없기 때문에 먼저 웹 서비스 부터 분석하는 것이 좋다. By Nmap scanning, you can see that the web server is open and Port 8080 is open as http-proxy. This means that this system is most likely using Web Applic..
2022.01.12 -
[웹 익스플로잇] Path Normalization BadProxy: Whitelist or Blacklist ACL 우회
자바 백엔드 서비스를 리버스 프록시로 이용하는 모든 시스템은 기본적으로(By default) 해당 취약점에 대해 취약하다. 이 취약점은 실제 외부 서버와 내부 프록시 서버에서 동작하는 웹 관련 서비스들이 경로 데이터를 해석하는 과정에서 서로 다른 결과를 도출해냄으로써 발생한다. Nginx 웹 서버 내부에 리버스 프록시로 Tomcat이 연결된 환경이 있다고 가정한다. Nginx는 일반 유저들이 Tomcat의 관리 페이지인 /manager/html에 접근하는 것을 막고 있다. /??/..;/manager/html /??/..;/manager/ 다음과 같은 경로를 입력하여 접속을 시도할 경우 Nginx는 /..;/를 단순 디렉토리로 간주하여 접근을 허용하지만 Tomcat은 상위 디렉토리라고 간주하여 관리 페이..
2022.01.10 -
[침투 테스팅] HackTheBox - Popcorn : Web Shell 업로드를 이용한 내부 침투
SSH 서버와 웹 서버가 열려있다. 이외에도 운영체제가 Ubuntu라는 것을 확인, 정확한 OS 정보는 웹 서버를 탐색하면서 더 자세히 얻을 수 있는 경우가 많다. Searchsploit을 통해 취약점을 검색해보았지만 별다른 내용을 확인할 수 없었다. 일단 대부분 Username Enumeration이라 지금 당장 큰 도움은 되지 않을 것 같고 중간에 있는 Command Execution 관련 취약점은 CVE도 안붙었고 자세한 내용을 찾을 수 없었다. 웹에서 취약점을 찾아보고 공격 벡터가 발견되지 않는다면 Command Execution 관련 취약점을 찾아보던가 Username Enumeration과 Brute Force를 연계한 공격을 시도하는 것으로 하고 일단은 넘어가자. 일단 기본 페이지에 아무것도..
2022.01.10