服务器端的XML注入 | 云防线技术博客

服务器端的XML注入

来源:本站原创 网站安全 超过围观 0条评论

 危险

Xml注入是通过改写xml的数据内容来实现。XML通常用于存储数据,如果用户提供的数据是以XML的方式进行存储,那么对攻击者来说,注入额外的、攻击者可能不能正常控制的XML是有可能的。

 

攻击原理

考虑下述XML,在这个XML中,攻击者仅仅能够控制Attacker Text文本:

 <?xml version=”1.0″ encoding=”UTF-8″?>

<USER role=”guest”>Attacker Text</USER>

如果用你的输入来替换Attacker Text,以User1</USER><USER role=“admin”>User2 作为输入的话,将会产生如下的XML

<?xml version=”1.0″ encoding=”UTF-8″?>

<USER role=”guest”>User1</USER>

<USER role=”admin”>User2</USER>

如果应用程序读取这个文件,并且决定给每个用户分配何种访问权限的时候,User2将获得管理员权限!

在一位同事的ppt上看到xml的常见攻击方式如下:

1)广泛用于web服务的攻击。如上面所举例子,通过精心构造输入内容来进行攻击。

2)使用特别长的标签 像<AAAAAAA/> 1024个

3)使用特别多的属性 像<AA a=‘a’b=‘b’…>

4)递归负载攻击。注入深层次的循环嵌套的xml数据,造成服务器上XML分析器崩溃,造成Dos

5)外部实体攻击。利用<!Entityname SYSTEM “URI”>

由于xml文件本身标签所占用的地方通常会比内容多,所以在数据比较多,属性比较多时,xml会非常的庞大,从而给xml文件的传输和解析带来困难。所以我理解2-4都是通过加大xml解析器的负担来达到攻击的目的。

 

预防

1)对用户输入进行检查

2)对XML操作,必须对格式字符进行转义处理

222

版权信息:原创文章:云防线
本文链接:http://blog.cloudfence.cn/?p=120转载请注明转自云防线
如果喜欢:点此订阅本站