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

%00截断

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

00截断原理分析_16进制

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

t                   此时输出的是test.php

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

00截断原理分析_php_02

 

0X00截断

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

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

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

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

00截断原理分析_php_03

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