Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2023-25690 — CVE-2023-25690 Apache mod_proxy의 HTTP 요청 스머글링에 대한 PoC 익스플로잇입니다. Docker를 이용한 실습 환경, BurpSuite 워크스루, 프록시 접근 제어 우회를 통해 내부 관리자 엔드포인트에 접근하는 방법을 포함합니다. | Kitploit
도구/GitHubGitHub/thanhlam-attt/cve-2023-25690
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingLearning & Education
GitHubthanhlam-attt/cve-2023-25690

CVE-2023-25690

CVE-2023-25690 Apache mod_proxy의 HTTP 요청 스머글링에 대한 PoC 익스플로잇입니다. Docker를 이용한 실습 환경, BurpSuite 워크스루, 프록시 접근 제어 우회를 통해 내부 관리자 엔드포인트에 접근하는 방법을 포함합니다.

저장소 보기
4162년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2023-25690

CVE-2023-25690 설명:

  • Apache HTTP Server 2.4.0부터 2.4.55까지의 일부 mod_proxy 구성에서 HTTP Request Smuggling 공격(하나 이상의 사용자로부터 수신된 HTTP 요청 시퀀스를 웹 사이트가 처리하는 과정에 간섭하는 공격 기술)을 허용합니다.
  • 이러한 구성은 mod_proxy가 특정 형태의 RewriteRule 또는 ProxyPassMatch와 함께 활성화된 경우 영향을 받으며, 원격 공격자가 이 취약점을 악용하여 프록시 서버의 접근 제어 조치를 우회하고, 결과적으로 원치 않는 URL을 원본 서버에 위임할 수 있습니다.
  • 이 취약점은 공격자가 프록시에 의해 숨겨진 내부 애플리케이션을 대상으로 접근할 수 있게 하여, 무단 액세스, 데이터 유출 또는 시스템 내 추가 악용으로 이어질 가능성이 있습니다.

CVE-2023-25690 실험

  • 공격자 머신으로 Windows 사용
  • 백엔드 서버 및 프록시 서버는 Kali Linux 머신에서 Docker를 통해 배포됨

실습 파일 구조:

image

실험 모델

image

  • Windows 10 IP 주소: 192.168.1.177
  • Kali Linux IP 주소: 192.168.27.139
  • 백엔드 서버 IP 주소: 172.18.0.2
  • 프록시 서버 IP 주소: 172.18.0.3
  • Windows 10이 Kali 머신 port 80에 호스팅된 Apache HTTP Server에 접근하면 트래픽이 Proxy-Server의 port 80으로 전달되고, port 8080을 통해 Backend-Server로 전달됩니다.

시스템 요구 사항

  • 공격자 머신:
    • 운영 체제 Windows 10
    • 도구 설치: Pycharm, BurpSuite, VScode
    • FireFox 브라우저 사용 및 프록시 설정을 위한 FoxyProxy 확장 프로그램 설치
  • 피해자 머신:
    • 도구 및 서비스 설치: Docker, Tcpdump
    • Docker File 구성 (부록 참조)

공격 목표: HTTP Request Smuggling 취약점을 이용하여 프록시 서버의 제한을 우회하고 admin.php 페이지의 숨겨진 함수에 접근

실험 배포:

  • BurpSuite Community를 프록시로 설정하여 요청을 가로채고 수정
  • 브라우저에서 FoxyProxy 확장 프로그램을 다운로드하고 프록시 정보 추가: image
  • FoxyProxy를 도구 모음(브라우저 확장 프로그램 섹션)에서 Turn Off에서 BurpSuite Commu로 전환: image
  • BurpSuite에서 intercept를 on으로 설정하여 패킷 가로채기 실행: image
  • Kali 머신에서 cd 명령어로 docker-composer.yml 파일이 있는 lab 디렉토리로 이동하고, docker composer 실행: docker-composer up --build

CRLF 주입 확인:

  • 먼저, 다음과 같이 제어 문자(CRLF)를 포함한 요청을 시스템에 전송: HTTP/1.1\r\nFoo: baarr\r\r\n\n 그리고 URL 인코딩: %20HTTP/1.1%0d%0aFoo:%20baarr image => CRLF 문자(%0d%0a)를 삽입했을 때 서버가 오류나 제한 없이 요청을 처리하므로, CRLF 문자를 완전히 삽입할 수 있음을 알 수 있습니다.

HTTP Request Smuggling 확인:

  • 다음으로, 다음과 같은 URI가 있습니다: /categories/1 HTTP/1.1\r\nHost: Localhost\r\n\r\nGET /SMUGGLED, URL 인코딩 결과: /categories/1%20HTTP/1.1%0d%0aHost:%20localhost%0d%0a%0d%0aGET%20/SMUGGLED/ image
  • RewriteRule 적용 후, URL이 구문 분석되어 프록시를 통과한 요청이 다음과 같은 형식으로 변환됨을 확인 가능: image
  • 하나의 요청을 보냈지만 서버가 GET /categories와 GET /SMUGGLED라는 두 개의 응답을 수신하여 반환하는 것을 알 수 있습니다. image

HTTP Request Smuggling 악용:

  • httpd.conf 파일에서 Proxy-Server가 /admin/ 페이지 접근을 차단하도록 구성했다고 가정: image
  • HTTP Request Smuggling을 이용하여 apache-proxy의 검사 메커니즘을 우회할 수 있습니다. 요청: image
    • 로그 확인 결과, apache-proxy를 성공적으로 우회하여 /admin에 요청을 보냈고, 백엔드도 GET /admin에 대해 상태 코드 200을 반환했습니다. image
    • admin.php 파일에 임의의 도메인에 쿼리하는 nslookup 시스템 명령어를 실행하는 함수가 있다고 가정합니다. 목표는 프록시 메커니즘을 우회하고 이 숨겨진 함수에 접근하여 DNS 쿼리를 보내는 것입니다. 여기서는 우리의 Kali 머신 자체에 쿼리합니다. image
    • 악용 코드 (CVE-2023-25690.py 파일)와 pre.txt 파일 (프록시 서버를 우회하여 시스템에 요청을 보내기 위해 원하는 smuggled 요청 포함, 여기서는 /admin.php)이 있습니다. 이 코드는 pre.txt 파일에 포함된 요청으로 smuggling 요청을 생성하여 서버로 전송합니다. 동시에 요청 및 응답 결과를 각각 req.txt와 res.txt 파일에 기록합니다. image
    • 동시에 Kali 머신에서 TCPDUMP를 사용하여 port 53의 DNS 패킷을 캡처합니다. image
  • 우리가 보낸 요청이 프록시를 성공적으로 통과했음을 알 수 있습니다. 프록시는 이를 유효한 요청으로 간주합니다. 그러나 백엔드 서버에서는 제어 문자를 구문 분석하여 하나의 요청을 세 개의 요청으로 분할합니다: 첫 번째는 GET /categories.php?id=1, 두 번째는 GET /admin.php?secret=192.168.1.194, 마지막은 GET /abc입니다. image
  • 따라서 프록시가 요청을 허용하지 않는 /admin.php에 성공적으로 요청을 보냈습니다. image => TCPDUMP 확인 결과, 전송된 DNS 패킷이 캡처되었습니다. -> /admin.php의 숨겨진 함수가 성공적으로 실행되었습니다.
도구 다운로드