dvwa靶场通关(五)

第五关 File Upload(文件上传漏洞)

File Upload,即文件上传漏洞,通常是由于对上传文件的类型、内容没有进行严格的过滤、检查,使得攻击者可以通过上传木马获取服务器的webshell权限

low

low等级没有任何的防护

dvwa靶场通关(五)_第1张图片

 

创建一个test.txt文件,输入下面一句话木马

 dvwa靶场通关(五)_第2张图片

 然后改后缀名为.php,变成php文件,然后就上传该文件,返回一个路径

dvwa靶场通关(五)_第3张图片

 打开蚁剑连接,url就是根路径拼接上返回的路径

dvwa靶场通关(五)_第4张图片

 medium

这一关对文件类型和大小进行了限制,只能是jpg或者png格式文件,并且文件大小不能超过100000字节

dvwa靶场通关(五)_第5张图片

 上传刚才的php文件,提示只能上传jpeg或者png格式

dvwa靶场通关(五)_第6张图片

 那我们就把后缀改成jpg再上传,发现成功了,并且给出了上传的路径

 dvwa靶场通关(五)_第7张图片

 继续用蚁剑连接,发现虽然上传成功,但是无法连接成功,单纯的图片马并不能直接和蚁剑连接,因为该文件依然是以image格式进行解析,只有利用文件包含漏洞,才能成功利用该木马

dvwa靶场通关(五)_第8张图片

 所以我们要换一个方法绕过前端的检测,我们选择test.jpg上传,然后burp suite抓包,把后缀名改成.php即可绕过前端的检测,上传一个test.php文件

dvwa靶场通关(五)_第9张图片

 上传成功了

 dvwa靶场通关(五)_第10张图片

 这回连接成功了dvwa靶场通关(五)_第11张图片

 dvwa靶场通关(五)_第12张图片

high

 查看源码,High级别的代码读取文件名中最后一个”.”后的字符串,期望通过文件名来限制文件类型,因此要求上传文件名形式必须是”.jpeg” 、”.png”之一。同时,getimagesize函数更是限制了上传文件的文件头必须为图像类型。发现仅仅后缀是图片格式的还不行,文件内容必须还得是图片格式的。getimagesize(string filename)函数会通过读取文件头,返回图片的长、宽等信息,如果没有相关的图片文件头,函数会报错

dvwa靶场通关(五)_第13张图片

 我们找一张小一点的图片,和shell.php文件放在一起,同路径下输入cmd打开命令输入

copy 1.png /b + shell.php /a shell.jpg

 dvwa靶场通关(五)_第14张图片

 dvwa靶场通关(五)_第15张图片

 成功创建一个shell.jpg文件dvwa靶场通关(五)_第16张图片

 打开这个图片看,我们的php代码已经拼接到后面了

dvwa靶场通关(五)_第17张图片

 然后上传该文件

 dvwa靶场通关(五)_第18张图片

 此时由于图片马中的php代码并没有被解析,所以不能直接使用蚁剑进行连接,这里可以通过命令注入漏洞将文件名改为php

打开命令注入漏洞的low等级,输入下面内容

127.0.0.1 |rename ..\..\hackable\uploads\shell.jpg shell.php

 dvwa靶场通关(五)_第19张图片

 然后shell.jpg就被改成了shell.php

dvwa靶场通关(五)_第20张图片

 接下来就用蚁剑连接即可

 impossible

可以看到,Impossible级别的代码加入Anti-CSRF token防护CSRF攻击,对上传文件进行了重命名为md5值,同时对文件的内容作了严格的检查,导致攻击者无法上传含有恶意脚本的文件。

dvwa靶场通关(五)_第21张图片

 

你可能感兴趣的:(dvwa通关,php,安全,开发语言,web安全,网络安全)