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

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

一、环境准备:

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版本有些问题,所以不在此展示。

相关文章
|
6月前
|
存储 安全 Apache
文件上传--Upload-labs--Pass03--特殊后缀与::$DATA绕过
文件上传--Upload-labs--Pass03--特殊后缀与::$DATA绕过
文件上传--Upload-labs--Pass03--特殊后缀与::$DATA绕过
|
6月前
|
安全 PHP Windows
文件上传--Upload-labs--Pass07--点绕过
文件上传--Upload-labs--Pass07--点绕过
|
6月前
|
前端开发 安全 JavaScript
文件上传--Upload-labs--Pass01--前端绕过
文件上传--Upload-labs--Pass01--前端绕过
|
6月前
文件上传--Upload-labs--Pass12--(POST)00绕过
文件上传--Upload-labs--Pass12--(POST)00绕过
|
6月前
|
安全 PHP
文件上传--Upload-labs--Pass20--数组绕过
文件上传--Upload-labs--Pass20--数组绕过
|
6月前
|
安全 PHP
文件上传--Upload-labs--Pass05--大小写绕过
文件上传--Upload-labs--Pass05--大小写绕过
|
6月前
|
安全 PHP Windows
文件上传--Upload-labs--Pass06--空格绕过
文件上传--Upload-labs--Pass06--空格绕过
|
6月前
|
PHP Apache
文件上传--Upload-labs--Pass10--双写绕过
文件上传--Upload-labs--Pass10--双写绕过
|
6月前
|
PHP
文件上传--Upload-labs--Pass02--Content-Type绕过
文件上传--Upload-labs--Pass02--Content-Type绕过
|
6月前
|
安全 Apache PHP
文件上传--Upload-labs--Pass09(在某些版本里是Pass10)--点+空格+点 绕过
文件上传--Upload-labs--Pass09(在某些版本里是Pass10)--点+空格+点 绕过