文件上传漏洞是指用户上传可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。
上传漏洞原因在于代码作者没有对访客提交的数据进行校验或者过滤不严格,使上传的文件可以是木马、病毒、恶意脚本等等。
本次实验我使用的环境为DVWA、Burpsuite、java_x64_8.0.1520.16。
LOW级别
1.先编辑一个一句话简单的webshell脚本
新建记事本,输入以下代码
此段php语句表示用get方式获取cmd的参数
编程完成保存后把文件后缀名改为.php使它成为一个php文件
2.打开DVWA的LOW级别下的File Upload窗口
点击选择文件将编辑好的webshell脚本上传上去
上传成功后会显示../../hackable/uploads/cmd.php succesfully uploaded
此处的../../是表示上传后的文件目录是在hackable上两级的目录中
3.使用上传后的文件目录进行注入
首先复制现在页面的网址如图所示的前半段。
粘贴到新建网址的地址框后再将如图所示的文件目录复制上去
4.在此网址后可以输入cmd程序的命令进行传输参数。
可以看到服务器的PHP信息成功显示出来了
文件上传漏洞利用成功!
Medium级别
还是那本熟悉的webshell文件,把它上传
发现上传失败。Medium级别对文件类型作出了过滤,反馈信息提示平台只接受JPEG或者PNG的文件。那可没办法了告辞
先抓个包看看吧!打开我的Burpsuite在点击上传的同时抓到了包。
看到它的Content-Type后清清楚楚的写好了我的文件类型为application/octet-stream
于是乎只好上传一张图片试试水
试水为假抓包才是王道真正目的!打开我的Burpsuite在点击上传的同时抓到了包。
看到它的Content-Type后写着图片文件的类型为image/png
那我们可以把weblshell脚本的类型替换成image/png,那不就可以骗过去系统啦?
切回DVWA重新上传我们披着羊皮的狼伪装成png的php脚本
成功上传!
接下来的操作如图上传文件成功后的LOW级别一样,开始快乐的输入参数吧!
High级别正待更新......