4.bWAPP XML&XPath Injection
字数 912 2025-08-24 16:48:07

XML & XPath 注入攻击全面解析

1. XML注入(XXE)基础

XML外部实体注入(XXE):攻击者通过向服务器注入指定的XML实体内容,让服务器按照指定配置执行,导致安全问题。

产生原因:服务端接收和解析来自用户端的XML数据时,未做严格安全控制。

2. XPath注入基础

XPath注入利用XPath解析器的松散输入和容错特性,在URL、表单等位置附带恶意XPath查询代码,以获取权限信息并更改这些信息。

与SQL注入的异同

  • 相似:都是通过构造恶意查询字符串进行攻击
  • 不同:XPath注入针对的是XML文档而非数据库

XPath注入特点

  • XML中没有访问控制或用户认证
  • 攻击者可访问整个XML文档
  • 注入点可能出现在cookie、headers、request parameters/input等位置

3. XML/XPath注入实战案例

案例1:登录表单注入(Low级别)

漏洞原理

  • 应用程序通过XPath查询XML文件验证用户名和密码
  • XPath语句:/heroes/hero[login='$login' and password='$password']

攻击方法

  1. 注入单引号触发错误,确认存在漏洞
  2. 构造万能登录payload:
    hack' or 1=1 or ''='
    
    实际执行的XPath变为:
    /heroes/hero[login='hack' or 1=1 or ''='' and password='任意密码']
    

案例2:搜索功能注入(Low级别)

漏洞原理

  • 应用程序通过XPath查询XML文件搜索电影
  • XPath语句://hero[contains(genre, '$genre')]/movie

攻击方法
构造恶意XPath获取敏感信息:

horror')]/password | hack[contains(a,'

实际执行的XPath变为:

//hero[contains(genre, 'horror')]/password | hack[contains(a,'')]/movie

这将返回所有horror类电影的password字段值

4. 防御措施

中高级别防护方法

  1. 对XPath语法进行严格过滤
  2. 使用参数化查询
  3. 实施输入验证和净化
  4. 最小权限原则,限制XML文档访问范围

5. 学习资源

基础教程

  • XML教程
  • XPath教程

6. 总结

XML/XPath注入是Web应用安全的重要威胁,攻击者可通过精心构造的输入获取敏感数据或绕过认证。开发者必须对所有用户输入进行严格验证和过滤,并采用安全的编程实践来防范此类攻击。

XML & XPath 注入攻击全面解析 1. XML注入(XXE)基础 XML外部实体注入(XXE) :攻击者通过向服务器注入指定的XML实体内容,让服务器按照指定配置执行,导致安全问题。 产生原因 :服务端接收和解析来自用户端的XML数据时,未做严格安全控制。 2. XPath注入基础 XPath注入利用XPath解析器的松散输入和容错特性,在URL、表单等位置附带恶意XPath查询代码,以获取权限信息并更改这些信息。 与SQL注入的异同 : 相似:都是通过构造恶意查询字符串进行攻击 不同:XPath注入针对的是XML文档而非数据库 XPath注入特点 : XML中没有访问控制或用户认证 攻击者可访问整个XML文档 注入点可能出现在cookie、headers、request parameters/input等位置 3. XML/XPath注入实战案例 案例1:登录表单注入(Low级别) 漏洞原理 : 应用程序通过XPath查询XML文件验证用户名和密码 XPath语句: /heroes/hero[login='$login' and password='$password'] 攻击方法 : 注入单引号触发错误,确认存在漏洞 构造万能登录payload: 实际执行的XPath变为: 案例2:搜索功能注入(Low级别) 漏洞原理 : 应用程序通过XPath查询XML文件搜索电影 XPath语句: //hero[contains(genre, '$genre')]/movie 攻击方法 : 构造恶意XPath获取敏感信息: 实际执行的XPath变为: 这将返回所有horror类电影的password字段值 4. 防御措施 中高级别防护方法 : 对XPath语法进行严格过滤 使用参数化查询 实施输入验证和净化 最小权限原则,限制XML文档访问范围 5. 学习资源 基础教程 : XML教程 XPath教程 6. 总结 XML/XPath注入是Web应用安全的重要威胁,攻击者可通过精心构造的输入获取敏感数据或绕过认证。开发者必须对所有用户输入进行严格验证和过滤,并采用安全的编程实践来防范此类攻击。