当前位置: 代码迷 >> 综合 >> 【XXE漏洞】buu_[NCTF2019]Fake XML cookbook
  详细解决方案

【XXE漏洞】buu_[NCTF2019]Fake XML cookbook

热度:71   发布时间:2024-01-19 13:26:53.0

1.XXE漏洞原理:

XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件和代码,造成任意文件读取、命令执行、内网端口扫描、攻击内网网站、发起Dos攻击等危害。

XXE漏洞触发的点往往是可以上传xml文件的位置,没有对上传的xml文件进行过滤,导致可上传恶意xml文件。

2.本题无法注入,查看源码发现application/xml,所以先尝试抓包,发现存在外部实体:

3. 尝试构造恶意实体,读取任意文件:

<!DOCTYPE note [<!ENTITY admin SYSTEM "file:///flag">]>
<user><username>&admin;</username><password>1</password></user>

4.payload解读:

一般实体的声明:<!ENTITY 实体名称 "实体内容">,引用一般实体的方法:&+实体名称
外部实体,用来引入外部资源。
有SYSTEM和PUBLIC两个关键字,表示实体来自本地计算机还是公共计算机。
PHP引用外部实体,常见的利用协议:file://文件绝对路径 如:file:///etc/passwd
因为将file:///flag的实体名称为admin,所以引用下面一般实体时使用&admin