PHP反序列化漏洞简介及相关技巧小结
通过urldecode进行对%00进行解码
不过有更快的方法。。。直接通过postman的urlencode/urldecode即可。因为0×00也就是url编码中的%00。所以url编码一下就完事。 要用%00包裹住类名,不能包多了也不能包少了,虽然%00也算一个字符,但是Php序列化的时候已经帮我们算好了,所以不需要修改,或者说,我们之前的那个长度值就是错的。。。 选中%00,右键,选择decode即可。 结果: 我们再发送,有response了, 发现有flag.txt。由于我是windows环境,读取文件使用type命令。 type命令格式:type文件路径 修改payload。 发现无回显 命令是对的,是因为刚刚我们忽略的waf函数在作怪。刚刚提到wakup时将每个args变量拿去在waf函数中洗了个澡。过滤内容为: flag这个字符串被替换为空,可以通过双写flag来绕过:flflagag 不过在第一个正则中过滤了空格就有点难受了,总所周知系统命令都是要打个空格才能添加参数的,过滤了空格怎么破? 思来想去后,发现windows没有人提供资料,但是linux下有很多。 绕过方法:
随便用一个(linux环境下): windows环境下的话时我突发奇想随便试出来的。适用性不是很广,也就type这个命令能用用。。
echo的话这个如果脑洞大点可以通过echo >>的方式将一句话追加到php文件末尾,达到getShell的目的。不过这样子如果该php文件很规范的用了?>结尾就莫得,如果没有那么规范,没用?>结尾就可以成功。 示例:
然后就可以通过新的后门来getshell了。
(编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |