实验记录-文件上传漏洞原理与利用-服务端检测绕过

实验环境

实验目的

1.掌握上传绕过服务端MIME的原理

2.掌握上传绕过服务端MIME的方法

实验步骤

步骤1:尝试上传脚本文件

  • 本步尝试上传脚本文件,如果成功则可以直接获取Webshell

我们根据左侧的实验指导,打开浏览器,输入172.16.12.2,进入到目标网站,点击注册按钮进行账号注册,并登陆上去。

因为本次试验需要进入后台进行上传,因此需要注册账号,从而进入账号后台,并在头像上传处上传

img

将提前写好的php一句话木马进行上传

可以看到上传失败,因为网站做了MIME验证,我们直接上传PHP一句话木马当然不能上传成功

步骤2:使用BurpSuite抓包修改MIME,突破上传

  • 本步使用BurpSuite进行抓包改包,并突破上传

使用BurpSuite对其进行抓包分析

img

可以看到已经抓到了包,我们点击右键发送到Repeater(中继模拟器),http包中的Content-Type字段的值为application/octet-stream

在Burp中修改Content-Type值为image/gif,(删除原值application/octet-stream,输入新值image/gif)点击Go再次发包,查看结果。

img

步骤3:使用菜刀连接Webshell

  • 本步通过菜刀连接一句话木马,拿到网站权限

最终成功拿到flag

实验结果分析与总结

  • 文件上传功能本身没有错,只是在一些条件下会被攻击者利用,从而成为漏洞,根据攻击原理,有以下几点应该注意:
  • 1:文件上传的目录设置为不可执行
  • 2:判断文件类型
  • 3:使用随机数改写文件名和文件路径

-—

1.注册用户-登录-发布投稿-上传图片

img

创建php一句话

img

配置burp抓包

火狐浏览器

选项-高级-网络-设置

img

上传php一句话

img

右键 send repeater

修改application/octet-stream 为 image/gif

img

img

2.使用中国菜刀获取服务器权限

img

服务器html目录获取flag

img

img