00截断原理分析

0x00,%00,/00之类的截断,都是一样的,只是不同表示而已

%00截断

下面是用 URL 编码形式表示的 ASCII 字符

在url中%00表示ascll码中的0 ,而ascii中0作为特殊字符保留,表示字符串结束,所以当url中出现%00时就会认为读取已结束

比如

https://mp.csdn.net/upfiles/?filename=test.txt                                此时输出的是test.txt

加上%00

https://mp.csdn.net/upfiles/?filename=test.php%00.txt                   此时输出的是test.php

就绕过了后缀限制,可以上传webshell啦。

0X00截断

0x开头表示16进制,0在十六进制中是00, 0x00就是%00解码成的16进制

 这里在php的后面添加了一个空格和字母a,其实a写不写都可以,这里加a是为了显示空格的位置。

空格是为了占位,方便修改00。

然后打开hex,(空格的16进制为0x20)修改16进制内容,把20改成00:

就绕过了后缀限制,可以上传webshell啦。


php 00截断

php版本要小于5.3.4,5.3.4及以上已经修复该问题

magic_quotes_gpc需要为OFF状态

include和require一般在网站内部读取文件

file_get_contents一般用于打开一个url或一个文件

file_exists判断文件是否存在

猜你喜欢

转载自blog.csdn.net/qq_26090065/article/details/81458937
今日推荐