文件上传进阶绕过(二)4个技巧和靶场实战

发布时间:2024年01月15日

★★免责声明★★
文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将信息做其他用途,由Ta承担全部法律及连带责任,文章作者不承担任何法律及连带责任。

0、环境准备

请移步《文件上传靶场实战:upload-labs第1-3关》

1、.号绕过原理

Windows系统下,文件后缀名最后一个点会被自动去除。 靶场实验:Pass-07

2、特殊符号绕过原理

Windows系统下,如果上传的文件名中test.php::$DATA会在服务器上生成一个test.php的文件,其中内容和所上传文件内容相同,并被解析。 靶场实验:Pass-08

3、路径拼接绕过原理

在没有对上传的文件进行重命名的情况下,用户可以自定义文件名并在服务器中上传新建,就会造成对应的绕过黑名单。

例如:用户新建 1.php.+空格+. deldot删除最后一个点之后,不再进行删除,trim删除空格,那么最终上传的文件名为 1.php.,利用Windows自动去除最后一个点,导致成功上传1.php。靶场实验:Pass-09

4、双写绕过原理

代码编写过程中,只对黑名单中的内容进行空替换,因为只替换一次所以造成双写绕过。str_ireplace() 函数替换字符串中的一些字符(不区分大小写)。靶场实验:Pass-10

str_ireplace() 函数必须遵循下列规则:
如果搜索的字符串是一个数组,那么它将返回一个数组。
如果搜索的字符串是一个数组,那么它将对数组中的每个元素进行查找和替换。
如果同时需要对数组进行查找和替换,并且需要执行替换的元素少于查找到的元素的数量,那么多余元素将用空字符串进行替换
如果是对一个数组进行查找,但只对一个字符串进行替换,那么替代字符串将对所有查找到的值起作用。
注释:该函数不区分大小写。请使用 str_replace() 函数来执行区分大小写的搜索。
注释:该函数是二进制安全的。

来源:https://www.runoob.com/php/func-string-str-replace.html

5、Pass-07

5.0、攻击思路

上传一句话木马的文件info.php,打开Burp Suite拦截,在文件名后面加上点号【英文符号】,然后点Forward提交成功。

5.1、BurpSuite拦截

在这里插入图片描述

5.2、木马解析成功

回到文件上传页面,右击新标签页面打开,木马解析成功。

在这里插入图片描述

6、Pass-08

6.0、攻击思路

上传一句话木马的文件info.php,打开Burp Suite拦截,在文件名后面加::$DATA,然后点Forward提交成功。

6.1、BurpSuite拦截

在这里插入图片描述

6.2、木马解析成功

回到文件上传页面,右击新标签页面打开,需要手动删除路径中的::$DATA,木马解析成功。
在这里插入图片描述
在这里插入图片描述

7、Pass-09

7.0、攻击思路

上传一句话木马的文件info.php,打开Burp Suite拦截,在文件名后面加【.空格.】. .,然后点Forward提交成功。

7.1、BurpSuite拦截

在这里插入图片描述

7.2、木马解析成功

回到文件上传页面,右击新标签页面打开,木马解析成功。
在这里插入图片描述

8、Pass-10

8.0、攻击思路

上传一句话木马的文件info.php,打开Burp Suite拦截,在文件后缀名修改为双写.php-->.pphphp,然后点Forward提交成功。

8.1、BurpSuite拦截

在这里插入图片描述

8.2、木马解析成功

回到文件上传页面,右击新标签页面打开,木马解析成功。
在这里插入图片描述

9、下期内容预告

下期继续分享文件上传进阶绕过技巧(三)和靶场实战,敬请关注我的公众号:大象只为你,持续更新中…

文章来源:https://blog.csdn.net/wuqixiufen2/article/details/135613216
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。