fastjson反序列化漏洞
验证网站是否存在fastjson漏洞的方法~~
一、fastjson简介
fastjson是java的一个库,可以使java对象和json格式的字符串相互转换。序列化是将java对象转为为json格式的字符串,反序列化就是将json格式的字符串转为java对象。
二、漏洞简介
fastjson在解析json的过程中,会自动调用@type指定类的set/get方法来访问属性。通过查找代码中相关的方法,即可构造出一些恶意利用链。
三、漏洞详情
组件名称:fastjson
影响版本:fastjson<=1.2.80
漏洞类型:远程任意代码执行
四、漏洞探测
1、根据返回包判断
任意抓包,将提交方式改为POST。返回包就会出现fastjson字样。

2、修改请求包
用burp抓包,将发送方式改为post,更改类型为json,添加json格式的字符串,可以看到返回包中成功了。
1 | POST |

3、利用dnslog平台
修改请求包,将GET方法改为POST,更改类型为json,添加json格式的字符串:
1 | POST |

发送之后,在dnslog平台上refresh record 可以成功得到值,说明存在漏洞。

4、利用burp插件
burp插件下载:https://github.com/Maskhe/FastjsonScan/releases
注意:该插件只检测传输ison数据格式的数据包,所以数据包中如果没有ison数据需要自行添加。发送无json数据的数据包会提示not supported 不会开始检测。

抓包修改为以POST方式请求,添加ison格式的数据,右键发送给插件。

插件成功识别,开始检测漏洞。如果存在漏洞,会在request请求包中显示payload。如果没有漏洞,会展示原始的请求与响应。
