文件上传--Upload-labs--Pass09(在某些版本里是Pass10)--点+空格+点 绕过

简介: 文件上传--Upload-labs--Pass09(在某些版本里是Pass10)--点+空格+点 绕过

一、什么是 点+空格+点 绕过

顾名思义,将 test.php 改为 test.php. . ,观察到后缀名php后多出了 点+空格+点。那么 点+空格+点 是如何进行绕过的,在什么情况下可以使用,让我们结合题目讲解。


二、代码审计

1、查看题目源代码上半部分,题目采取黑名单,并且对 Pass05 - Pass07 的题目中所出现的漏洞进行了有效修复,意味着我们不再能够使用 点绕过/空格绕过/大小写绕过了。

2、接着查看源代码下半部分,看起来和前面关卡并无不同,但其实题目源代码做了一个细小的修改,如图。题目将 $img_path中的 $file_ext 换成了 $file_name,就是这个细节,构成了 点+空格+点 漏洞。


三、点 + 空格 + 点 绕过原理

1、上传 test.php. . 文件,源代码的诸条指令开始对其进行操作。

2、首先 deldot() 函数将文件名的最后一个点删除,变为: test.php._ 。 _在这里表示空格。

3、strche() 函数提取最后一个点到字符串末尾的位置,即提取文件后缀名,并赋值给 $file_ext。但是文件最后一个点到末尾的字符串是 空字符,故提取的文件后缀名 $file_ext 也是空字符,这就可以对黑名单进行绕过了。

4、接着解释 $image_path 中的 $file_name 的问题,经过一系列操作后,$file_name 为 test.php,而 $file_ext 为空字符,如果这里写的是 $file_name,最终的 $image_path 应该形如:https://upload-labs/upload/test.php,反之,若写的是 file_ext,最终的 $image_path 应该形如:https://upload-labs/upload/ ,这会导致Apache什么都解析不出来,因为没有文件可以解析,upload 目录下为空。这就是 点+空格+点 绕过的局限性所在。


四、通关操作

1、首先上传 test.php 文件,利用 Burpsuite 进行抓包,在 filename 中添加 点+空格+点 进行黑名单绕过。

2、放包,文件上传成功,在新标签页中打开,将url后多出的 点和空格 删掉,发现代码执行成功。

---通关。

相关文章
|
6月前
|
测试技术
【LaTex】10 从md文件导入\导出word (因为:Typora-版本过高不能转换word 报错:Unknown option --atx-headers. )
【LaTex】10 从md文件导入\导出word (因为:Typora-版本过高不能转换word 报错:Unknown option --atx-headers. )
165 7
|
6月前
|
存储 安全 Apache
文件上传--Upload-labs--Pass03--特殊后缀与::$DATA绕过
文件上传--Upload-labs--Pass03--特殊后缀与::$DATA绕过
文件上传--Upload-labs--Pass03--特殊后缀与::$DATA绕过
|
6月前
|
安全 PHP Windows
文件上传--Upload-labs--Pass06--空格绕过
文件上传--Upload-labs--Pass06--空格绕过
|
6月前
|
安全 PHP
文件上传--Upload-labs--Pass05--大小写绕过
文件上传--Upload-labs--Pass05--大小写绕过
|
6月前
|
安全 PHP
文件上传--Upload-labs--Pass20--数组绕过
文件上传--Upload-labs--Pass20--数组绕过
|
6月前
|
安全 PHP Windows
文件上传--Upload-labs--Pass07--点绕过
文件上传--Upload-labs--Pass07--点绕过
|
6月前
|
前端开发 安全 JavaScript
文件上传--Upload-labs--Pass01--前端绕过
文件上传--Upload-labs--Pass01--前端绕过
|
6月前
|
安全 PHP
文件上传--Upload-labs--Pass11--(GET)00绕过
文件上传--Upload-labs--Pass11--(GET)00绕过
|
6月前
|
PHP Apache
文件上传--Upload-labs--Pass10--双写绕过
文件上传--Upload-labs--Pass10--双写绕过
|
6月前
文件上传--Upload-labs--Pass12--(POST)00绕过
文件上传--Upload-labs--Pass12--(POST)00绕过
下一篇
无影云桌面