文件上传--Upload-labs--Pass11--(GET)00绕过

本文介绍了在PHP5.2.17环境下,由于magic_quotes_gpc设置导致的00绕过漏洞原理,通过代码审计和利用白名单限制,以及如何在Burpsuite中拦截并修复此漏洞的操作过程。
摘要由CSDN通过智能技术生成

一、环境准备:

php版本:推荐 php5.2.17(官方推荐版本)。小于php5.3.4也可以,但是要在 php.ini 配置文件中手动将 magic_quotes_gpc 的状态改为 Off。

magic_quotes_gpc的作用是对 get请求、post请求、cookie...传入的数据进行转义处理,它只存在于 php5.3.4 及以下版本,比如 %00 会被转义为 0,然而当 magic_quotes_gpc 状态为 On 时,url编码不会被解析,而00绕过需要url编码被解析,所以要修改 magic_quotes_gpc 的状态。

因为高版本的php对00漏洞进行了修复。


二、00绕过原理

1、首先进行代码审计,发现 $image_path 用 GET方法进行传参,并且内容为 save_path->保存路径,这就使我们想到可以使用 00绕过。

2、我们只需要修改 test.php 后缀为白名单中的后缀,如 test.jpg,再修改 save_path的值为 test.php,利用00绕过,最终的 $image_path为: https://upload-labs/upload/test.php%00/562020583482.jpg,将jpg文件保存在test.php文件目录下,这个操作实际上使不允许的,所以通过 %00 对后面的内容做了无效化处理,致使最终上传的文件是test.php。


三、通关操作

1、首先上传含有php代码的 test.jpg 来绕过白名单,再在 Burpsuite 中进行拦截,修改save_path。

2、发包,上传成功,新标签页中打开,并删除 url 中的 .jpg和数字后缀,只保留.php后缀,代码成功执行。

我的php版本有些问题,所以不在此展示。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值