XML文档结构:

DTD(Document Type Definition,文档类型定义,用来为XML文档定义语义约束)
DTD内部声明
DTD外部引用
引用公共DTD
漏洞产生原因:
漏洞产生原因

代码意义:导入外部实体,用file协议读取etc/passwd文档并赋值给f,打印f
外部引用可以支持http,file,ftp等协议
如果一个接口支持接收xml数据,且没有对xml数据做任何安全上的措施,就可能导致XXE漏洞
simplexml_load_string()函数:将xml文档转换为SimpleXMLElement对象
注:php里面解析xml用的是libxml,其在>=2.9.0的版本中,默认禁止解析xml外部实体内容
DOCTYPE ANY [
]>
<x>&f;x>

现在很多语言里面对应的解析xml的函数默认是禁止解析外部实体内容的,从而也就直接避免了这个漏洞。
防范措施: