使用 Fuzztag 一键爆破反序列化链2.0
2023-1-13 17:31:35 Author: Yak Project(查看原文) 阅读量:21 收藏

前情回顾

在之前的更新中,我们新增了几个标签,yso:exec、yso:urldns、yso:headerecho、yso:bodyexecheaderauth、yso:dnslog,这些Fuzztag 涵盖了对反序列化链的爆破以及回显利用,为了涵盖更多的使用场景,本次新增了两个探测 Gadget的标签,并且在Web Fuzzer中增加了这些标签的提示功能。

新增标签

新增标签:yso:find_gadget_by_dns、yso:find_gadget_by_bomb,这两个标签可用于探测 Gadget,方便大家进行反序列化漏洞的利用链的探测。

当然也可以手动输入需要探测的Class

以上具体原理细节部分见参考文章:https://gv7.me/articles/2021/construct-java-detection-class-deserialization-gadget/

实战演练

 1   环境搭建

为了方便,这里直接使用了vulhub中的JBoss 4.x JBossMQ JMS 反序列化漏洞(CVE-2017-7504)当作测试环境。

 2   漏洞检测

使用 yso:find_gadget_by_dns(domain)探测利用链

构造如下数据包:

查看dnslog

dnslog的返回结果,对比版本号可以很方便的看出

存在CommonsCollections1/3/5/6/7、CommonsBeanutils2链,同时还探测出了目标的操作系统为linux

我们再使用Yso-Java-Hack模块进行确认,如下选择CommonsCollections5生成payload进行测试。

发送payload

检查结果

执行成功,结果符合预期。

使用 yso:find_gadget_by_bomb(className)探测利用链

构造如下数据包:

通过对响应时间的排序可以发现,其中的几个数据包响应明显不同,同时查看Payload字段发现和yso:find_gadget_by_dns探测结果一致。

自定义检测Class,如java.util.HashMap,该类存在,因此响应时间较长。

检测一个不存在的Class,如java.util.HashMapxx,该类不存在,因此响应正常。

通过上述的实际操作,结果符合我们的预期。

(ps:探测出来的利用链并非均可利用,如某些利用链有 Jdk 版本要求)

标签提示功能

由于陆续添加的标签也越来越长了,因此添加了对yso开头标签的一些提示功能,如下图:

END

希望yso系列标签能让各位师傅使用的更加顺手、提高盲打的效率,师傅们使用时可以根据目标出网情况,是否有代码执行链去判断,可以参考上一篇文章的流程图,使用 Fuzztag 一键爆破反序列化链

如果有可代码执行的链,可以根据出网情况选择打入内存马、直接上线cs或其它操作,需要打入内存马时可以使用 Yso-Java Hack 直接生成hex格式的payload,然后使用hexdec标签调用就可以了。

往期推荐

使用 Fuzztag 一键爆破反序列化链
安全能力强化:Fuzztag再升级!
Yakit实战技巧:用MITM热加载任意修改流量
安全基础设施|Yaklang SQL Injection 检测启发式算法
安全基础设施:用Fuzztag优雅地生成与变形任何Payload


文章来源: http://mp.weixin.qq.com/s?__biz=Mzk0MTM4NzIxMQ==&mid=2247492569&idx=1&sn=6abc07e30721102756bfd8d3a1a62770&chksm=c2d19f7df5a6166bd79e8d098dfba640997b6ba69e8980400054bc8181375cdedff891e4bf64#rd
如有侵权请联系:admin#unsafe.sh