XXE 入门
XML
实体
在XML中,实体相当于宏或者变量,可以自定义。ENTITY(独立存在物,实体)
所有实体(除参数实体外)都以一个与字符(&)开始,以一个分号(;)结束。
命名实体(在 XML 规范中也称为内部实体)就是我们在谈论 “实体” 时所指的实体。命名实体在 DTD(Document Type Definition 文档类型定义) 或内部子集(即文档中 <!DOCTYPE> 语句的一部分)中声明,在文档中用作引用。在 XML 文档解析过程中,实体引用将由它的表示替代。
比如在我们使用键盘进行书写 XML 的时候,如果要输入键盘里面没有的希腊字母等文本,可以引用内部已经定义好的实体(宏定义)比如 alpha,然后将我们写下的引用替代为无法输入 α 的UTF-8编码。
1 |
这里我们就可以里利用外部能够注入 XML 文件,执行一些恶意的代码。
XML还支持外部实体引用:
1 |
|
如果没有XML的回显的话,我们就可以轻易的利用XML支持外部实体的特点,进行远程回显,使用send将文件远程发送到我们自己服务器的监听端口。
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Xorex!
评论