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判断文件是否存在

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值