web渗透--27--XPath注入

1、漏洞描述:

XPath是主要针对XML文档部分寻址而设计研发的一种语言。XPath注入攻击是指利用XPath解析器的松散输入和容错特性,能够在URL、表单或其它信息上附带恶意的XPath查询代码,以获得权限信息的访问权并更改这些信息。XPath注入攻击是针对Web服务应用新的攻击方法,它允许攻击者在事先不知道XPath查询相关知识的情况下,通过XPath查询得到一个XML文档的完整内容。

XPath注入攻击利用两种技术,即XPath扫描和XPath查询布尔化。通过该攻击,攻击者可以控制用来进行XPath查询的XML数据库。这种攻击可以有效地对付使用XPath查询(和XML数据库)来执行身份验证、查找或者其它操作。XPath注入攻击同SQL注入攻击类似,但和SQL注入攻击相比较,XPath在以下方面具有优势:

(1)广泛性:XPath注入攻击利用的是XPath语法,由于XPath是一种标准语言,因此只要是利用XPath语法的Web应用程序如果未对输入的XPath查询做严格的处理都会存在XPath注入漏洞,所以可能在所有的XPath实现中都包含有该弱点,这和SQL注入攻击有很大区别。在SQL注入攻击过程中根据数据库支持的SQL语言不同,注入攻击的实现可能不同。

(2)危害性大:XPath语言几乎可以引用XML文档的所有部分,而这样的引用一般没有访问控制限制。但在SQL注入攻击中,一个“用户”的权限可能被限制到某一特定的表、列或者查询,而XPath注入攻击可以保证得到完整的XML文档,即完整的数据库。只要Web服务应用具有基本的安全漏洞,即可构造针对XPath应用的自动攻击。

2、检测方法

XPath注入攻击主要是通过构建特殊的输入,这些输入往往是XPath语法中的一些组合,这些输入将作为参数传入Web应用程序,通过执行XPath查询而执行入侵者想要的操作。

下面以登录验证中的模块为例,说明XPath注入攻击的实现原理和检测方法,在Web应用程序的登录验证程序中,一般有用户名(username)和密码(password)两个参数,程序会通过用

你可能感兴趣的:(web渗透,web安全,渗透测试,OWASP安全测试)