Web-文件上传漏洞总结

121 篇文章 21 订阅
9 篇文章 0 订阅

目录

1、常规前端绕过

2、修改文件类型

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

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

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

6、条件竞争


1、常规前端绕过

如下图,在前端存在限制,只能上传图片类型的文件(非图片类型甚至无法进行抓包)

如果考察的只是一个前端绕过,比如这道题,那么这种很简单

我们只需要使用BurpSuite抓包然后改后缀即可

首先将一句话木马的.php后缀改为符合要求的后缀,比如这里的.jpg

一句话木马内容如下:

顺便说一下,一句话木马的写法有很多种,上面这个是比较简单和常见的写法

文件头的 GIF89a 可以理解为一个绕过作用,不一定需要但是加了更好,懂我意思吧

OK,我们开始传

由于是.jpg的后缀,符合前端要求,所以我们可以使用BurpSuite进行抓包,如下图:

 我们需要将后缀改回.php

 然后直接放包即可

可以看到文件上传成功,为什么图片没有正常显示出来,因为传的这个东西本质还是一句话木马,我们只是改了它的后缀,它的实质并不是图片。

复制图像链接,使用蚁剑或者菜刀进行连接

如果上传成功后并不能复制图像链接,也没有给你路径,我们也可以自己找

我们将包发到repeater

 同样修改后缀后发送,我们同样可以找到文件被传到了哪里

 下面就是使用蚁剑连接

 拿下,添加数据,进去找flag就行,一般是在根目录下面

2、修改文件类型

我们直接传.php文件,前端没有出现限制提示

 抓包后如下图:

如果我们直接放包,发现前端报错

 这里需要修改文件类型,即Content-Type

修改为image/jpeg,如下图:

放包之后我们发现上传成功

同理我们找到文件位置,直接上蚁剑即可

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

这两个东西都可以使我们上传的图像类文件被当作php文件解析

具体该用哪个,什么情况下用,这个是说不清楚的,我只能说这是我们做文件上传的一个绕过方向

首先尝试前面讲过的两种思路,发现直接传php的不行,传jpg抓包后修改后缀为php也不行

jpg虽然可以直接上传,但是并没有用

我们需要它被当作php文件解析,那么就需要用到前面说的两个配置文件之一

 首先来看一下这两个文件的内容(特意加了块引用,方便大家复制)

.htaccess

<FilesMatch ".jpg">
  SetHandler application/x-httpd-php
</FilesMatch>

 .user.ini

GIF89a
auto_prepend_file=6.jpg 

这里说一下,等号后面的6.jpg就是你要上传的jpg类型的一句话木马文件名 

再来说用法:

先上传一个配置文件 .user.ini 或 .htaccess 

再上传jpg后缀的一句话木马,注意:直接上传,不用改后缀

下面我以.htaccess 为例

我们依旧需要改文件类型(一般都是改为 image/jpeg)

 

接着我们上传jpg的一句话木马

这里不用改后缀也不用改类型,直接放包

后续操作大家就很熟悉了

 发现不行,这道题要用 .user.ini (注意.user.ini里的内容与上传的木马文件名一致)

当然实际情况下我们肯定不知道哪些后缀被过滤了,所以只能慢慢尝试

再来说一下大小写的绕过,虽然.htaccess被禁止了,但是我们可行修改大小写来实现绕过,比如将文件名改为.Htaccess,内容不变,大小写绕过不只是在配置文件,也可用在php后缀上

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

这个就是在bp中使用字典去爆破能上传成功的后缀,然后再使用shell连接工具去逐个尝试连接

以buuctf中的 [ACTF2020 新生赛]Upload1 为例:

就是一个文件上传

初步尝试发现php不行,那么我们就传jpg

 抓包后发到攻击模块

 可以使用字典也可以自己添加一些常用的

 最终这道题能连接成功的是phtml

 当然其实能上传成功的有很多,有些也不能上传成功

我们要做的就是在上传成功的路径里面去尝试连接

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

实际情况并没有这种提示,我们做这类题就是不断尝试各种类型

这种类型的话我们就需要使用图片马

用copy命令来制作:copy 1.jpg/b + shell.php 2.jpg

生成的2.jpg就是一个图片马,我们直接传2.jpg即可

6、条件竞争

这个需要写脚本,大概原理就是利用服务器端处理存在的一个时间间隙来产生“碰撞”

我们不断地上传文件和不断地访问自己上传的文件,就有可能在文件进行判断删除之前,成功访问文件,并执行里面的代码。

下面是关于绕过的总结:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

My6n

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值