Web安全-基于上传漏洞的POST方式00截断绕过
实验声明:本实验教程仅供研究学习使用,请勿用于非法用途,违者一律自行承担所有风险!
基于上传漏洞的POST方式00截断绕过
实验目的
通过本次实验,体验00截断POST方式绕过上传检测的方法,掌握如何使用burpsuit进行数据抓包与改包从而结合上传漏洞的攻击方法以及防御措施。
实验环境
渗透主机:burpsuitv1732
用户名: college
密码: 360College
工具:Burpsuite
目标网站:上传漏洞训练平台(第12关)
用户名: college
密码: 360College
实验原理
服务器端检测源代码如下图
代码分析
(1)白名单检测:指定数组中的上传类型array('jpg','png','gif');
(2)关键函数功能
strrpos() 函数查找字符串在另一字符串中最后一次出现的位置。
例如strrpos("1.jpg",".")
substr(string,start,length)函数
示例代码
源代码中的检测方案
属于文件保存路径没有处理直接拼接函数名称再拼接文件类型可以使用利用00截断绕过。
截断条件需要满足:
(1)php版本小于5.3.4
(2)php的magic_quotes_gpc为OFF状态
实验步骤
第一步 启动目标网站
登录靶机后,进入D:/phpstudy2018目录,然后双击启动phpStudy。
查看php版本:
如果勾选的不是5.2.17版本,则勾选该版本,然后服务器自动重启。
查看magic_quotes_gpc状态。
确保magic_quotes_gpc开关,处于关闭(OFF)状态。
第二步 渗透主机设置burpsuit与Firefox,开启代理抓包功能
第三步 在burpsuit代理抓包功能开启的前提下,上传aa.php,然后修改参数,使用00截断上传绕过检测
(1)代理抓包的信息如下如所示
(2)要修改的参数共四处,分别是
第4处是
第四步 成功绕过检测上传aa.php文件至目标网站
第五步 上传成功后的现象
(1)在浏览器前端右键点击后查看属性,可看到上传成功的php文件路径
(2)另外在渗透主机远程访问http://ip/upload/aa.php成功
思考与总结
通过本次实验,成功实现了修改抓包信息来绕过上传检测,掌握上传漏洞的攻击方法以及防御措施。