这产生了发往服务器的 HTTP GET 请求,` GET 144.76.194.66 /XXE/ 10/29/15 1:02PM Java/1.7.0_51`。这有两个原因值得注意,首先,通过使用一个概念调用的简单证明,David 能够确认服务器求解了它插入的 XML 并且进行了外部调用。其次,David 使用现存的 XML 文件,以便时它的内容满足站点所预期的结构。虽然它没有讨论这个,调用它的服务器可能并不是必须的,如果它能够服务`/etc/passwd`文件,并将内容渲染在`<name>`元素中。
6. Wikiloc 解析了 XML 文件,发现了`&send;`实体,它求值为 David 服务器的远程调用,带有`/etc/passwd`的内容,作为 URL 中的参数。
用他自己的话来说,游戏结束了。
> 重要结论
> 像之前提到的那样,这是一个不错的例子,展示了如何使用来自站点的 XML 模板,来组装你自己的 XML 实体,便于让目标合理地解析文件。这里,Wikiloc 期待`.gpx`文件,而 David 保留了该结构,在预期标签中插入了他自己的 XML 实体,也就是`<name>`标签。此外,观察如何处理恶意 DTD 文件很有意思,并且可以用于随后让目标向你的 服务器发送 GET 请求,带有文件内容作为 URL 参数。