一、文件上传漏洞
文件上传漏洞原理:
1.文件上传(File Upload)是大部分web应用都具备的功能,例如用户上传附件、修改头像、分享图片/视频等
2.正常的文件一般是文档、图片,视频等,web'应用手机之后放入后台存储,需要的时候再调用出来返回
3.如果恶意文件如PHP、ASP等执行文件绕过Web应用,并顺利执行,则相当于黑客直接拿到了Webshell(控制网站,类似于bash,bash—控制linux虚拟系统)
4.一旦黑客拿到Webshell,则可以拿到web应用的数据,删除web文件,本地提权,进一步拿下整个服务器甚至内网
5.SQL注入攻击的对象是数据库服务,文件上传漏洞主要攻击web服务,实际渗透两种相结合,达到对目标的深度控制
实验一:低安全模式下,上传任意类型的文件,文件大小限制
实验步骤:
1.找到靶机的ip地址,然后输入到浏览器中。
2.然后登录,此时安全模式级别为最低
3.本地随机上传一个文件
4.在低安全模式下,可以看到后端源码。
5.然后在浏览器将文件路径添加到浏览器当中,访问得到下图结果
6.实验完成——将任意文件上传。
实验二:中安全模式下,绕过类型上传文件
1.设置安全级别为中等
2.上传图像文件,可以上传
3.上传其他文件除图像文件外,显示上传失败
4.查看源码,发现只有图像文件才能成功上传。image表示某种类型的图像文件,只有匹配类型才能上传成功
解决方案:
接下来要对类型进行修改,绕过它,然后上传任意文件
使用BurpSuite进行代理,进行修改。
1.先在kali上打开burpsuite代理
2.在kali linux虚拟机上高级选项中启用代理
3.设置完成之后发现无法访问,执行下一步
4.在burpsuite上开启拦截之后,即可进行页面访问
5.同理在win下也进行同样的代理开启设置,然后在burpsuite上面向所有端口。
执行完以上准备操作之后,进入“欺骗”流程
6.首先将斐波那契脚本上传,显示上传失败
7.在kali linux的burpSuite下开启拦截。
8.开启拦截之后,将Content-Type内容修改为image/jpeg,然后点击转发,之后返回靶机上再次查看。
9.结果显示上传成功,成功进行了文件上传的“欺骗”
10.注:这个时候如果在靶机上查看,是查看不了的,得打开“caidao”才能进行查看