实验记录-文件上传漏洞原理与利用-服务端检测绕过
实验环境
- 操作机:Windows XP
- 目标机:Centos6.5
- 目标地址:http://www.test.ichunqiu
实验目的
1.掌握上传绕过服务端MIME的原理
2.掌握上传绕过服务端MIME的方法
实验步骤
步骤1:尝试上传脚本文件
- 本步尝试上传脚本文件,如果成功则可以直接获取Webshell
我们根据左侧的实验指导,打开浏览器,输入172.16.12.2,进入到目标网站,点击注册按钮进行账号注册,并登陆上去。
因为本次试验需要进入后台进行上传,因此需要注册账号,从而进入账号后台,并在头像上传处上传
将提前写好的php一句话木马进行上传
可以看到上传失败,因为网站做了MIME验证,我们直接上传PHP一句话木马当然不能上传成功
步骤2:使用BurpSuite抓包修改MIME,突破上传
- 本步使用BurpSuite进行抓包改包,并突破上传
使用BurpSuite对其进行抓包分析
可以看到已经抓到了包,我们点击右键发送到Repeater(中继模拟器),http包中的Content-Type字段的值为application/octet-stream
在Burp中修改Content-Type值为image/gif,(删除原值application/octet-stream,输入新值image/gif)点击Go再次发包,查看结果。
步骤3:使用菜刀连接Webshell
- 本步通过菜刀连接一句话木马,拿到网站权限
最终成功拿到flag
实验结果分析与总结
- 文件上传功能本身没有错,只是在一些条件下会被攻击者利用,从而成为漏洞,根据攻击原理,有以下几点应该注意:
- 1:文件上传的目录设置为不可执行
- 2:判断文件类型
- 3:使用随机数改写文件名和文件路径
-—
1.注册用户-登录-发布投稿-上传图片
创建php一句话
配置burp抓包
火狐浏览器
选项-高级-网络-设置
上传php一句话
右键 send repeater
修改application/octet-stream 为 image/gif
2.使用中国菜刀获取服务器权限
服务器html目录获取flag