浅谈XXE攻击
时间:2017-10-19 11:32:04
收藏:0
阅读:272
一、XXE,即XML External Entity,XML外部实体。ENTITY 实体,在一个甚至多个XML文档中频繁使用某一条数据,我们可以预先定义一个这条数据的“别名”,即一个ENTITY,然后在这些文档中需要该数据的地方调用它。XML定义了两种类型的ENTITY,一种在XML文档中使用,另一种作为参数在DTD文件中使用。ENTITY的定义语法:
<!DOCTYPE 文件名 [ <!ENTITY 实体名 "实体内容"> ]>
定义好的ENTITY在文档中通过“&实体名;”来使用。举例:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE booklist [ <!ENTITY publisher "ABC company"> ]> <booklist> <book> <name>Ajax</name> <price>$5.95</price> <description>Foundations of Ajax.</description> <publisher>&publisher;</publisher> 这里的&publisher;会被“ABC company”替换 </book> <book> <name>Ajax Patterns</name> <price>$7.95</price> <description>Introduction of Ajax Patterns.</description> <publisher>&publisher;</publisher> 这里的&publisher;会被“ABC company”替换 </book> </booklist>
在 XML 中有 5 个预定义的实体引用:
< | < | 小于 |
> | > | 大于 |
& | & | 和号 |
' | ‘ | 省略号 |
" | " | 引号 |
注释:严格地讲,在 XML 中仅有字符 "<"和"&" 是非法的。省略号、引号和大于号是合法的,但是把它们替换为实体引用是个好的习惯。
参考:
1、http://www.freebuf.com/articles/web/126788.html
原文:http://www.cnblogs.com/shengulong/p/7691477.html
评论(0)