您的位置:首页 > 其它

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

2019-04-03 19:47 483 查看

文件上传漏洞

概念

文件上传漏洞的产生是因为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等级的漏洞相结合达到了我们的命令执行,分开则达不到成果。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: