前情回顾
在之前的更新中,我们新增了几个标签,yso:exec、yso:urldns、yso:headerecho、yso:bodyexec、
headerauth、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/
实战演练
为了方便,这里直接使用了vulhub中的JBoss 4.x JBossMQ JMS 反序列化漏洞(CVE-2017-7504)当作测试环境。
查看dnslog
从dnslog的返回结果,对比版本号可以很方便的看出
存在CommonsCollections1/3/5/6/7、CommonsBeanutils2链,同时还探测出了目标的操作系统为linux。
我们再使用Yso-Java-Hack模块进行确认,如下选择CommonsCollections5生成payload进行测试。
发送payload
检查结果
执行成功,结果符合预期。
通过对响应时间的排序可以发现,其中的几个数据包响应明显不同,同时查看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标签调用就可以了。
往期推荐