避免XPath 注入的危险

原创 2007年10月08日 16:17:00
随着简单 XML API、Web 服务和 Rich Internet Applications (RIAs) 的发展,更多组织几乎在所有方面(从配置文件到远程过程调用)都采用 XML 作为数据格式。一些人已经使用 XML 文档代替更传统的纯文本文件或关系数据库,但是与任何其他允许外部用户提交数据的应用程序或技术相似,XML 应用程序可能容易受到代码注入的攻击,尤其是 XPath 注入攻击。
  简介

  随着新技术的出现并得到很好的沿用,针对这些技术的威胁也随之产生并逐渐增多。SQL 盲注攻击是一种为人熟知的代码注入攻击形式,但是也有很多其他形式,有些尚未得到很好的记载和了解。最近开始出现的一种代码注入攻击是 XPath 注入攻击,它利用了 XPath 解析器的松散输入和容错特性,让心怀不满的人能够在 URL、表单或其他方法上附带恶意的 XPath 查询以获得权限信息的访问权并更改这些信息。

  本文考察了通常情况下如何执行 XPath 攻击并提供了一个 Java™ 和 XML 环境中的例子。讨论了如何检测这类威胁,考察了如何减轻该威胁,最后讨论了如何应对可疑的入侵。

  入门

  本文主要介绍代码注入攻击的一种特殊类型:XPath 盲注。如果您不熟悉 XPath 1.0 或需要了解基础知识,请查看 W3 Schools XPath 教程(请参阅 参考资料 中的链接)。您还可以在 developerWorks 上找到大量的关于在各种语言环境中使用 XPath 的文章(请参阅 参考资料 中的链接)。本文使用的示例主要针对 XPath 1.0,但是也可用于 XPath 2.0。XPath 2.0 实际上增加了您可能遇到的问题。

  本文还提供了用于处理 Java JDK 5.0 的 Java 代码示例。同时本文的概念和主题是跨平台的,如果您的应用程序使用 XPath 获取特殊的代码示例,那么您必须使用 JDK 5.0。

  代码注入

  一种更常见的对 Web 应用程序的攻击和威胁是某种形式的代码注入,Wikipedia 将其定义为:……利用系统没有对其输入进行强制执行或检查的假设向计算机系统中引入(或 “注入”)代码的技术。注入代码的目的通常是绕过或修改程序的最初目标功能。如果被绕过的功能涉及系统安全,那么结果可能是灾难性的。

  快速浏览任何相关 Web 站点(比如 Web Application Security Consortium 或 Security Focus,请参阅 参考资料 中的链接)都会显示很多使用某种形式的代码注入进行的攻击,从 JavaScript 到 SQL 注入再到其他形式的代码注入攻击。最近开始出现的一种威胁(最初由 Amit Klein 于 2004 年在一篇论文中概述)是 XPath 盲注攻击(请参阅 参考资料)。这种攻击的运作跟 SQL 盲注攻击几乎完全相似,与 SQL 注入攻击不同的是,几乎没什么人了解 XPath 盲注攻击或对其进行预防。与 SQL 注入攻击类似,如果使用最佳实践开发安全的应用程序,通常可以轻松地处理该威胁。 

安全测试之XPath注入攻击

一、XPath注入攻击的概念Xpath注入攻击本质上和SQL注入攻击是类似的,都是输入一些恶意的查询等代码字符串,从而对网站进行攻击。 XPath注入攻击,是指利用XPath 解析器的松散输入和容错...
  • quiet_girl
  • quiet_girl
  • 2016-01-26 16:20:37
  • 2852

浅谈XPath注入检测思路和方法

我们都应该知道XPath这种语言是做什么的,就不细讲了,具体参见菜鸟教程 XPath语法详解 XML不是保存企业数据的,但是很多情况下都用来保存应用程序配置数据,小型应用程序也保存简单信息,例如角色权...
  • pygain
  • pygain
  • 2017-01-15 14:00:48
  • 1004

有关 XPATH 注入的介绍与代码防御

0x01 介绍        软件未正确对 XML 中使用的特殊元素进行无害化处理,导致攻击者能够在终端系统处理 XML 的语法、内容或命令之前对其进行修改。在 XML 中,特殊元素可能包括保留...
  • king16304
  • king16304
  • 2016-10-07 16:00:01
  • 301

Xpath注入攻击及其防御技术研究

Xpath注入攻击及其防御技术研究 陆培军 (南通大学 计算机科学与技术学院,江苏 南通226019)     摘 要 XML技术被广泛使用,XML数据的安全性越来越重要。本文简要介绍了XPat...
  • yefan2222
  • yefan2222
  • 2012-02-02 15:10:36
  • 10615

XPath盲注简介

本文主要介绍代码注入攻击的一种特殊类型:XPath 盲注。 如果您不熟悉 XPath 1.0 或需要了解基础知识,请查看 W3 Schools XPath 教程。您还可以在 developerWor...
  • yefan2222
  • yefan2222
  • 2012-02-02 13:45:36
  • 7641

检验危险字符串 防止SQL注入

#region 检查危险字符         ///         /// 检查危险字符         ///         ///         ///         ...
  • yang651280121
  • yang651280121
  • 2012-11-12 15:35:05
  • 1885

替换输入字符串中的危险字符

SQL注入是一种常规性的攻击,通过此方法一些不法用户可以检索他人的数据,改变服务器的设置,或者有意破坏他人的服务器。SQL注入式攻击不是SQL Server的问题,而是不适当的程序造成的。   ...
  • hong0220
  • hong0220
  • 2014-11-15 22:52:09
  • 1552

url传递中文字符,特殊危险字符的解决方案

很多时候,我们需要在url中传递中文字符或是其它的html等特殊字符,似乎总会有各种乱,不同的浏览器对他们的编码又不一样, 对于中文,一般的做法是: 把这些文本字符串传给url之前...
  • nieweiking
  • nieweiking
  • 2016-08-25 13:37:48
  • 1162

xpath 注入工具和视频教程

http://penetration-testing.7safe.com/the-art-of-exploiting-lesser-known-injection-flaws-revealed-at-...
  • cnbird2008
  • cnbird2008
  • 2011-08-22 16:14:26
  • 4313

看好你的门-攻击数据存储区(4)-XPath注入攻击

XPath注入和SQL注入,原理上非常相似 但是XPath注入的对象主要是XML,相对来说,危害性更加大...
  • ffm83
  • ffm83
  • 2015-03-11 08:46:18
  • 936
收藏助手
不良信息举报
您举报文章:避免XPath 注入的危险
举报原因:
原因补充:

(最多只允许输入30个字)