DVWA环境实战演示“文件上传”漏洞

文件上传漏洞

概念

文件上传漏洞的产生是因为Web应用程序没有对上传文件的格式进行严格过滤;攻击者可以上传病毒,恶意脚本,webshall等严重威胁服务器安全的文件,如果服务器的处理逻辑做的不够安全的话,将会导致严重后果。

准备实战环境

在这里插入图片描述进入DVWA界面,把安全等级调成 “low” 找到我们的 File upload 模块
在这里插入图片描述看起来像一个正常的界面,我们先随便找张图片试一下:
在这里插入图片描述
把这张很萌的史迪仔图片命名为test.jpg,并把这张图片上传,出现了如图所示的提示信息
在这里插入图片描述说明我们的图片上传成功,并且它提示了文件上传位置的相对路径…/…/hackable/uploads/test.jpg succesfully uploaded!

仔细分析这个路径跟url做对比,不难发现前面的两个…/代表了文件在url的上两级目录中。通过拼接url 我们得到一个完整路径:http://192.168.0.135/DVWA-master/hackable/uploads/test.jpg 访问下看看;
在这里插入图片描述可爱的史迪仔又出现了,说明文件上传成功。然后我们试下不正常的操作:首先创建一个phpinfo.php文件,写入:<?php phpinfo();?>并将它上传:在这里插入图片描述如图所示我们找到它所在的相对路径,拼接url访问下:
在这里插入图片描述发现PHP文件成功执行。这只是说明存在上传漏洞,我们可以试下最经典的一句话webshall:<?php @eval($_GET['cmd']); ?> (它可以执行用户输入的cmd值)
将webshall上传。
在这里插入图片描述依旧成功上传。然后我们执行下之前的phpinfo函数:
在这里插入图片描述又一次出现了我们phpinfo的界面表明执行成功。查看系统命令dir:

在这里插入图片描述
这里使用了php中的system函数,可以调用cmd中的dir命令。如图所示成功执行dir命令。
下面开始medium等级(感觉low等级我能玩一年 滑稽)

根据low等级经验,我们直接上传写好的phpinfo文件,选择上传后,页面出现了如下的提示信息:
在这里插入图片描述不允许上传,这就预示着low等级的方法失效了,看到这样的提示信息第一时间想到抓包分析,思路如下:用burpsuite分别对上传正常文件时跟上传php文件进行对比;burpsuite抓包教程(https://jingyan.baidu.com/article/6f2f55a151c6ddb5b93e6c36.html)
在这里插入图片描述上传php文件
在这里插入图片描述通过对比两个数据包的不同之处,不停将上传成功的部分进行替换,看响应包的结果,最终确定了是文件类型这个地方别服务端限制了。这样的话我们找到了medium等级的破解方法:通过修改type 为image/jpeg 如图所示:
在这里插入图片描述文件上传成功。攻破了medium等级 我们来到high等级
照猫画虎:试下low等级跟medium等级的方法,毋庸置疑全都失败了
跟medium等级方法一样,经过不断抓包尝试,对比发现文件名和文件内容被限制了。
这难不倒我们,解过ctf题的小伙伴们一定对“隐写术”不陌生,没错这里要用到隐写术制作内涵图。方法如下:准备一张图片,我们还用那个史迪仔图片,命名为1.jpg,在新建一个1.txt的文件,里面写下<?php phpinfo();?> 在cmd下输入命令 copy 1.jpg/b+1.txt/a 2.jpg
在这里插入图片描述然后我们选择用记事本打开2.jpg:
在这里插入图片描述发现我们的phpinfo代码安静的躺在最后。上传试下:
在这里插入图片描述成功了,怎么利用呢? 这就要结合上次的high等级的文件包含漏洞执行本地文件。进入high等级的文件包含漏洞:使用file协议直接将2.jpg的相对路径复制进去,奇迹出现了:
在这里插入图片描述再一次出现了phpinfo的界面,前面的乱码是2.jpg图片的内容。到此 两个high等级的漏洞相结合达到了我们的命令执行,分开则达不到成果。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值