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等级的漏洞相结合达到了我们的命令执行,分开则达不到成果。
- Dvwa之文件上传漏洞
- DVWA之PHP文件上传漏洞(File Upload)
- DVWA 黑客攻防实战(五)文件上传漏洞 File Upload
- 实战PHP上传文件代码演示
- 文件上传漏洞演示脚本之js验证
- 文件上传漏洞演示脚本之js验证
- 任意文件上传漏洞修复
- Go实战--golang上传文件到七牛云对象存储(github.com/qiniu/api.v7)
- nginx解析漏洞 只要可以上传文件就会被黑 推荐
- 基于Java web技术文件上传和下载功能开发实战练习视频(fileupload)
- 【漏洞分析】WordPress任意文件上传漏洞
- 文件上传漏洞练习笔记(1)
- 文件上传下载漏洞
- 文件上传漏洞在惠信中的应用
- vs2005/.NET2.0 控件演示之 文件上传 《FileUpload》
- 【SSH网上商城项目实战13】Struts2实现文件上传功能
- 解决 nginx 环境下的php 上传文件大小限制
- php实现将文件写入数据库、从数据库读取文件(防止图片上传漏洞)
- 文件上传漏洞绕过实验记录
- [代码审计]XiaoCms(后台任意文件上传至getshell,任意目录删除,会话固定漏洞)