来源:自学PHP网 时间:2015-04-17 13:03 作者: 阅读:次
[导读] www.2cto.com:可以结合本文查看:http://www.2cto.com/Article/200710/19153.html1 Xpath注入攻击概述1.1 Xpath定义 XPath注入攻击是指利用XPath 解析器的松散输入和容错特性,能够在URL、表单或其它信息上...
www.2cto.com:可以结合本文查看:http://www.2cto.com/Article/200710/19153.html
1 Xpath注入攻击概述 1.1 Xpath定义 XPath注入攻击是指利用XPath 解析器的松散输入和容错特性,能够在URL、表单或其它信息上附带恶意的XPath 查询代码,以获得权限信息的访问权并更改这些信息。XPath注入攻击是针对Web服务应用新的攻击方法,它允许攻击者在事先不知道XPath查询相关知 识的情况下,通过XPath查询得到一个XML文档的完整内容。 1.2 XPath注入攻击特点 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注入攻击主要是通过构建特殊的输入,这些输入往往是XPath语法中的一些组合,这些输入将作为参数传入Web 应用程序,通过执行XPath查询而执行入侵者想要的操作,下面以登录验证中的模块为例,说明XPath注入攻击的实现原理。 在Web 应用程序的登录验证程序中,一般有用户名(username)和密码(password) 两个参数,程序会通过用户所提交输入的用户名和密码来执行授权操作。若验证数据存放在XML文件中,其原理是通过查找user表中的用户名 (username)和密码(password)的结果来进行授权访问,例存在user.xml文件如下: <users> <user> <firstname>Ben</firstname> <lastname>Elmore</lastname> <loginID>abc</loginID> <password>test123</password> </user> <user> <firstname>Shlomy</firstname> <lastname>Gantz</lastname> <loginID>xyz</loginID> <password>123test</password> </user> 则在XPath中其典型的查询语句如下: //users/user[loginID/text()='xyz' and password/text()='123test'] 但是,可以采用如下的方法实施注入攻击,绕过身份验证。如果用 户传入一个login 和password,例如loginID = 'xyz' 和password = '123test',则该查询语句将返回true。但如果用户传入类似' or 1=1 or ''=' 的值,那么该查询语句也会得到true 返回值,因为XPath 查询语句最终会变成如下代码: //users/user[loginID/text()='' or 1=1 or ''='' and password/text()='' or 1=1 or ''=''] 这个字符串会在逻辑上使查询一直返回true 并将一直允许攻击者访问系统。攻击者可以利用XPath 在应用程序中动态地操作XML 文档。攻击完成登录可以再通过XPath盲入技术获取最高权限帐号和其它重要文档信息 摘自 Ay暗影'blog |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com