入职大厂必会
写在前面的话:请注意本篇博客最后面的附(注意java版本),本篇博客采用的是LDAP服务getshell,rmi同理。阅读本篇博客需了解fastjson,ldap,rmi。
启动靶场
在终端里进入事先进入准备好的vulhub靶场目录下,
cd fastjson/1.2.24-rce/
sudo docker-compose up -d
执行命令后,看到如下图所示即为成功,此时可在浏览器中输入http://ip:8090,正常访问即为靶场启动成功。

漏洞发现
漏洞成因
从 fastjson 漏洞形成的原因看,是目标网站在解析 json 时,未对 json 内容进行验证,直接将 json 解析成 java 对象并执行,这就给了攻击者可乘之机,构造对应的 payload ,让系统执行,然后达到代码执行,甚至命令执行的目的。
寻找方式
寻找存在 Fastjson 漏洞的方法,就是先找到参数中内容是 json 数据的接口,然后使用构造好的测试 payload 进行提交验证,检测原理跟 sql 注入差不多,首先找到参数提交的地方,然后再用 payload 尝试。
明白寻找方式后,我们对靶场json进行测试,发现如下图所示

此时我们对红框中的GET改成POST,添加Content-Type字段为application/json,再添加请求参数,如下图所示:

可见返回来的结果被改变了,于是提交java对象试试,代码如下所示:
1.2.24:
{
"b":{
"@type":"com.sun.rowset.JdbcRowSetImpl",
"dataSourceName":

本文介绍如何利用FastJSON漏洞实现远程代码执行,包括漏洞原理、复现步骤及所需工具。
vulhub专栏:FastJson1.2.24、1.2.27漏洞复现&spm=1001.2101.3001.5002&articleId=124991615&d=1&t=3&u=69cca73b07304b3dbb04b45d8f09524f)
1924

被折叠的 条评论
为什么被折叠?



