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啦。