%00截断在文件上传漏洞中的妙用

%00截断的原理

0x00是十六进制表示方法,是ascii码为0的字符,在有些函数处理时,会把这个字符当做结束符。 系统在对文件名的读取时,如果遇到0x00,就会认为读取已结束。

限制条件

在PHP5.3之后的版本中完全修复了00截断。并且00截断受限GPC,addslashes函数

注意: %00截断的使用对PHP有条件限制
1.php的版本小于5.3.4
2.php的magic_quotes_gpc为关闭状态

 

GET型%00截断

GET型提交的内容会被自动进行URL解码。 注意:一定要关闭GPC,否则无法成功。

 POST型%00截断

在POST请求中,%00不会被自动解码,需要在16进制模式中将其手动修改为00

实战运用 

各位i读者大大可以参考以下链接中的Pass-11和Pass-12

手把手教你玩转upload-labs靶场(1--20关超详细保姆级)

以下是上面链接中有关%00截断的段落节选:

实战演练:"战况升级---白名单来袭" 

Pass-11(白名单验证---GET型%00截断)

到了这一关局势完全逆转了,查看源码发现这次使用了白名单,它只允许上传给定的后缀名,但是我们同样有绕过的手段

 先用BP抓包试试水:

 那么我们可以试试%00截断,直接BP抓包修改

 首先上传一个.png文件开始抓包,之后用BP在save_path这里修改

Pass-12(白名单验证---POST型%00截断)

这一关的原理和Pass-11一样,不过save_path是使用POST方式进行传参的,那么在添加%00时需要进行编码(具体原因各位读者大大可以移步--->>%00截断在文件上传漏洞中的妙用)

还是先上传一个.png文件后抓包修改内容,选中%00进行编码:

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洛一方

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值