打开题目
查看源代码
发现我们post传入的数据都被放到了doLogin.php下面
访问一下看看
提示加载外部xml实体
我们知道外部xml实体的格式是
<!ENTITY 实体名称 SYSTEM "URI/URL">
bp抓包一下看看
得到flag
或者这样
但是很明显这样是不行的,因为资源是在admin上,也就是用户名那里
PHP引用外部实体,常见的利用协议:
file://文件绝对路径
如:
file:///etc/passwd
php://filter/read=convert.base64-encode/resource=xxx.php
参数实体+外部实体
<!ENTITY % 实体名称 SYSTEM "URI/URL">
参数实体+外部实体
示例代码:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE test [
<!ENTITY % file SYSTEM "file:///etc/passwd">
%file;
]>
%file
(参数实体)是在DTD中被引用的,而&file;
是在xml文档中被引用的。
最简单的xxe注入
知识点源于:XML注入攻击总结_xml攻击-CSDN博客