 描述
攻击者可以工艺特殊用户可控输入包含XPath表达式将XML数据库和绕过身份验证或收集信息,他们通常不会。XPath注入攻击者可以直接对话的XML数据库,因此完全绕过应用程序。XPath注入应用程序未能妥善清洁的结果输入用作动态XPath表达式的一部分用于查询XML数据库。
 攻击的可能性
 典型的严重性
 执行流程
探索
调查目标:使用浏览器或一个自动化工具,敌人记录的所有实例用户可控输入用于contruct XPath查询。
技术 |
使用自动化工具来记录用户可控的所有实例输入用于contruct XPath查询。 |
网站使用浏览器手动探索和分析应用程序如何处理输入。 |
确定tructure查询:使用人工或自动手段,测试输入发现对XPath的弱点。
技术 |
使用自动化工具自动探测输入XPath的弱点。 |
手动探针的输入使用单引号等字符(“),这会导致XPath-releated错误,从而表明XPath的弱点。 |
利用
XPath注入内容查询:工艺恶意内容包含XPath表达式不验证的应用程序和执行XPath查询的一部分。
技术 |
使用精心设计的输入来执行意想不到的查询数据库信息,攻击者可以披露敏感。 |
结合使用单引号(')和布尔表达式如XPath”或1 = 1”操作逻辑。 |
使用XPath函数的恶意内容如“- length”、“字符串”,或“数”来获得信息所使用的XML文档结构。 |
 先决条件
XPath查询用于检索信息存储在XML文档中 |
用户可控输入不正确消毒之前被用作XPath查询的一部分 |
 技能要求
(等级:低) XPath注入与SQL注入共享相同的基本前提。攻击者必须了解XPath语法和结构为了成功利用XPath注入 |
 所需资源
 指标
 后果
这个表指定不同的个体与攻击模式相关的后果。范围确定违反了安全属性,而影响了负面的技术影响,如果敌人成功的攻击。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能有高可能性模式将被用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
保密
访问控制
授权 |
获得特权 |
|
保密 |
读取数据 |
|
 缓解措施
强大的输入验证,所有用户可控的输入必须验证和过滤非法字符以及内容的上下文中,可以解释一个XPath表达式。字符如单引号(')等运营商或(|)和(&)等应过滤如果应用程序不期望他们出现的上下文。如果这些内容不能被过滤,它至少必须正确地逃到避免他们被解释为XPath表达式的一部分。 |
使用参数化的XPath查询——参数化导致的输入被限制在特定的领域,比如字符串或整数,以外的任何输入这些域被认为是无效的,查询失败。 |
使用自定义的错误页面,攻击者可以收集信息的本质从描述性查询错误消息。输入验证必须加上自定义的错误页面,通知一个错误没有披露信息数据库或应用程序。 |
 例子,实例
考虑一个应用程序,该应用程序使用一个XML数据库对用户进行身份验证。应用程序从一个请求检索用户名和密码并形成一个XPath表达式来查询数据库。攻击者可以成功地绕过身份验证和登录没有通过XPath注入有效身份证件。这可以通过将XPath语法的查询XML数据库导致身份验证检查失败。验证用户可控的输入和使用不当non-parameterized XPath表达式使攻击者将导致认证绕过一个XPath表达式。 |
 分类法映射
 引用
 内容的历史
提交 |
提交日期 |
提交者 |
组织 |
2014-06-23
(版本2.6) |
CAPEC内容团队 |
manbetx客户端首页 |
|
修改 |
修改日期 |
修饰符 |
组织 |
2017-08-04
(版本2.11) |
CAPEC内容团队 |
manbetx客户端首页 |
Attack_Phases更新,描述总结,Resources_Required |
2018-07-31
(版本2.12) |
CAPEC内容团队 |
manbetx客户端首页 |
更新引用,Related_Weaknesses |
2020-07-30
(版本3.3) |
CAPEC内容团队 |
manbetx客户端首页 |
更新描述 |
2020-12-17
(版本3.4) |
CAPEC内容团队 |
manbetx客户端首页 |
更新引用,Taxonomy_Mappings |
2021-06-24
(版本3.5) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Related_Weaknesses |
2022-02-22
(版本3.7) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Execution_Flow |
|