文件上传漏洞(基于upload-labs靶场)针对Windows系统特性的绕过

发布时间:2023年12月20日

本篇文章主要是对前面关于文件上传漏洞的补充,也欢迎大家参考我之前的博客:

(链接可能会过期,大家可以搜名字找到)

?Web-文件上传漏洞总结

1、常规前端绕过

2、修改文件类型

3、使用 .user.ini 或 .htaccess(可能还存在大小写绕过)

4、使用字典爆破可行后缀

5、结合文件包含漏洞使用图片马

6、条件竞争

http://t.csdnimg.cn/szNny

?wzsc_文件上传(条件竞争)

http://t.csdnimg.cn/ShiZG

本篇文章将做出以下补充:

目录

1、空格绕过

2、点绕过

3、::$DATA绕过


1、空格绕过

为了大家直接看出效果,这里上传都使用一个简单的phpinfo文件,内容如下图:

来到upload-labs第六关

查看提示,这里过滤掉了很多后缀

直接传php后缀文件肯定是不行的

注意:我再强调一遍,关于文件上传漏洞的题,绝大多数情况下我们是无法知道后端源码的,只有每个方向慢慢尝试,并不是说看到就知道要用什么方法,都是不断换方向试出来的。

这里要使用的是空格绕过,那么它基于的原理就是:

Windows系统对于文件的重命名会自动把空格给去掉

(这里如果直接在上传时添加空格是不行的)

所以我们需要进行抓包,然后在抓到的数据包中将文件名后缀加上空格,即可实现绕过。

关于burpsuite的基本用法也可以参考我之前的博客

抓到包之后发到重发器进行测试

在文件名后缀结尾添加空格

发送之后查看回显,上传成功

并且我们可以看到它的路径

尝试访问该路径的文件,没有找到

但是通过服务器查看,文件实际上是已经被上传成功了的

仔细看上面的文件名,结尾后缀是包含了空格的,由于我的靶场是使用centos搭建的,但是在Windows访问时空格会被自动去除,因此并没有找到文件,换句话说,这种绕过方法仅适用于Windows系统搭建的靶场。

2、点绕过

来到第七关

这个的原理和空格绕过一样,也是因为Windows系统对于文件的重命名会自动把点给去掉

这关的源码没有对文件名进行去点处理,因此我们可以使用点来进行绕过后缀的限制。

直接传.php肯定不行

我们对文件后缀添加点,即可上传成功

访问文件还是有一个问题,文件虽然上传成功但是没有执行里面的代码。

(同样原因,我的靶场并不是使用Windows系统搭建的)

3、::$DATA绕过

来到第八关,源码中未对?::$DATA?过滤,因此利用Windows流特性进行绕过。

Window系统对于文件名+"::$DATA",会把::$DATA之后的数据当成文件流处理,自动去掉文件名后的::$DATA,并且不会检测后缀名,保持::$DATA之前的文件名。

同样使用bp抓包,添加后缀 ::$DATA?

上传成功

在访问的时候同样会有一个问题

因为我们传上去的文件名还是我们修改后的文件名

而对于Windows系统搭建的靶场,它会将这些多余的后缀,比如空格、点、::$DATA 都自动去掉

因此,上述三种绕过方法仅对Windows系统适用。

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