文件上传——白名单验证绕过案例

文件上传——白名单验证绕过案例

1.Pass-12(get 00截断)

  原因是move_uploaded_file(底层为C),遇到0x00会截断(16进制),%00(URL编码)

  可以看出是get类型的传送,尝试使用%00来截断

  在文件路径后加上shell.php%00进行截断处理

  将filename传入的文件名改为白名单内容

  最后上传php文件成功,值得一提的是,改漏洞的前提条件是php版本需要小于5.3.4,并且其中的magic_quotes_gpc为off状态即可。

  

2.Pass-13(post 00截断)

  与Pass—12基本原理相同,只是这次是post的的截断

  将相关内容进行修改,并且在hex的板块中将+符号的编码改为00

  尤其注意magic_quotes_gpc为off状态,本人是试了好几次才成功,过程中也是遇到各种情况,在小迪安全中,则不是使用+而是用%00然后点击url编码显示位一个口字,但是对于使用的burp版本有要求,具体原因并没有给出,而且最终上传并没有成功。

小知识:get会自动解码为url编码,而post则不会自动解码

文件上传——白名单验证绕过案例
https://one-null-pointer.github.io/2022/09/09/文件上传——白名单验证绕过案例/
Author
liaoyue
Posted on
September 9, 2022
传送口