2、文件上传漏洞

2、文件上传漏洞

文件上传漏洞产生的原因是:应用程序中存在上传功能,但是对上传的文件没有经过严格的检验,导致攻击者可以上传木马文件到服务器。

2.1、文件名过滤绕过

JS验证代码通过黑名单的方式判断文件上传的类型,我们可以上传黑名单之外的文件类型绕过文件上传验证。
文件名过滤绕过的过程如下:

(1)将木马文件1.php的扩展名改为phP,进行上传
在这里插入图片描述

(2)test.phP上传成功。
在这里插入图片描述

(3)test.phP可以正常解析。

2.2、Content-Type过滤绕过

我们以DVWA靶场中文件上传为例(安全等级为中)。我们现查看源码。

我们可以发现文件类型必须为image/jpeg和image/png才可以上传成功。假如我们上传一个1.php的一句话木马文件。

这里是引用

用BurpSuite这个软件抓包,前提是在火狐(因为我用的就是火狐)浏览器和Burp上开设代理,一般都是127.0.0.1,端口8080。
在这里插入图片描述

我们把抓到的包里面的文件类型修改成image/jpeg。

在这里插入图片描述
此时点击forward可以看到转发成功。
在这里插入图片描述
然后就可以用“菜刀”连接,进而拿到webshell。

2.3、文件头过滤绕过

只要在木马文件的头部添加相对应的文件头,这样既可以绕过检测,又不影响木马文件的正常运行。

常见的文件头: JPEG PNG GIF

(1)在木马文件中添加图片文件的文件头,即可绕过检测。

内容为:GIF89a<?php @eval($_POST[g]);?>

(2)可以通过copy命令或者edjpgcom软件制作图片木马

22.jpg是正常的图片文件。a.txt是木马的代码,其内容为一句话木马。通过以下命令将两个文件合并到2.php木马文件中。
copy 22.jpg /b +a.txt /a 2.php
将制作好的图片木马2.php上传,成功绕过过滤。

2.4、.htaccess文件上传

.htaccess文件上传是利用.htaccess文件可以对Web服务器进行配置功能,实现将扩展名为》jpg、.png等文件当作php文件解析的过程。

1、开启.htaccess的配置

1)修改配置文件httpd.conf

Options FollowSymLinks AllowOverride All
将None改成All

2)去掉mod_rewrite.so的注释,开启rewrite模块。

这里是引用

2、构造.htaccess文件

文件内容为AddType application/X-httpd-php.jpg。

3、构造图片木马文件(上面有将讲怎么构造图片木马文件)

4、通过文件上传功能上传.htaccess文件和图片木马文件

两个文件上传成功后访问图片木马,发现里面的PHP代码已经成功解析。

2.5、文件截断上传

当PHP版本低于5.3.4时,会把%00这个字符当作结束符,导致后面的数据直接被忽略,造成文件上传截断。

例如:上传一个c.jpg的文件用burpsuite抓包并发送到repeater中,把这个名字改为c.php jpg,选中空格点击Hex,空格是百分之20,找到20改为00。

这里是引用

这里是引用
这里是引用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值