本关我们查看提示,是告诉我们上传路径是可控的,再查看一下源码。

由于这关是白名单验证,只能上传对应类型,所以我们是不太好绕过的,不过也不是没有办法,我们可以使用00截断来实现绕过。
\x00一般在文件中表示结束符号,有多种编码方式。例如,%00是URL编码方式,通常用于GET型消息的编码;0x00是十六进制编码方式,通常用于POST型消息的编码。
可以通过构造如同“eval.php%00.jpg”或者“eval.php0x00.jpg”这样的文件,导致最终被解析为“eval.php”,变成木马
0x00只能在十六进制模式下修改,在“Hex”页签中修改
我们还是需要上传一个图片文件,来满足白名单,我们需要在burp中修改上传路径,修改文件保存路径。需要注意的就是这三个参数。

可以看到我们上传成功了,我们后续直接访问就可以了。


!!!这里需要注意:00截断的利用利用条件
1.php版本须在5.3.4之前,因为之后版本已经修复这个漏洞,禁止在文件名和路径中出现 %00 字符。可以通过php面板来调整php版本。

2.php.ini配置文件中的的magic_quotes_gpc需关闭,它会对单引号(')、双引号(")、反斜杠(\)以及 NULL 字符进行转义,即在这些字符前面加上反斜杠(\)。而我们上传的%00经过URL解码后是NULL字符,会被转义成\0,无法上传。

解题点:当上传路径可控时,并且满足00截断条件时,使用00截断来绕过。
481

被折叠的 条评论
为什么被折叠?



