Pikachu-xxe-xxe漏洞

XML用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素

复制代码
<!--文档元素xml的声明  -->
<?xml version="1.0" encoding="ISO-8859-1"?>

<!--文档类型定义-->
<!DOCTYPE note [    <!--定义此文档时note类型的文档-->
<!ELEMENT note (to,from,heading,body)>    <!--定义note元素有四个元素:"to、from、heading,、body"-->
<!ELEMENT to (#PCDATA)>                   <!--定义to元素为"#PCDATA"类型-->
<!ELEMENT from (#PCDATA)>                 <!--定义from元素为"#PCDATA"类型-->
<!ELEMENT head (#PCDATA)>                 <!--定义head元素为"#PCDATA"类型-->
<!ELEMENT body (#PCDATA)>                 <!--定义body元素为"#PCDATA"类型-->
<!ENTITY xxe SYSTEM "file://d:/1.txt" >   <!--外部实体声明,支持http、file、ftp等协议-->
]>

<note>  #根元素
    <to>Dave</to>  #接下来4行描述根的4个子元素(to,from,head以及body)
    <from>Tom</from>
    <head>Reminder</head>
    <body>You are a good man</body>
</note>  #根元素结

外部实体的 DOCTYPE 声明:

<!DOCTYPE 根元素 SYSTEM "文件名">

DTD

文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。

什么是DTD,如需详细了解,可参考DTD菜鸟教程。

将xml语言和html对比着再来解释一下

1、xml语言是指可扩展标记语言,是一种标记语言,类似于html,html是超文本标记语言

2、xml的设计宗旨是传输数据,html的设计宗旨是显示数据

3、xml标签没有被预定义的,需要自行定义标签,比如shuxue98,html语言的标签都是被定义好的,比如: 这个标签就是加粗

4、xml被设计为具有自我描述性

5、xml是w3c的推荐标准

特点:

1、xml仅仅是纯文本,他不会做任何事情

2、xml可以自己发明标签(允许定义自己的标签和文档结构)

3、专门用来存放传输数据的东西

什么是xxe漏洞?

XXE漏洞全称XML External(外部的) Entity(实体) Injection(注入),即xml外部实体注入漏洞,XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,没有对xml文件进行过滤,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站等危害。简而言之就是 外部实体,也就是我们DTD部分中的变量在加载(引用)外部的内容,从而发起了网络请求(本地请求)

漏洞原理:把用户输入的数据当成xml外部实体代码进行执行,利用xml的外部实体去访问内网,访问本机,访问本机的文件。这也是产生XXE漏洞的原因。

漏洞挖掘思路

关注可能解析xml格式数据的功能处,较容易发现的是请求包参数包含XML格式数据,不容易发现的是文件上传及数据解析功能处,通过改请求方式、请求头Content-Type等方式进行挖掘,思路一般分三步:

1、检测XML是否会被成功解析以及是否支持DTD引用外部实体,有回显或者报错;;

2、需注意没有回显则可以使用Blind XXE漏洞来构建一条带外信道提取数据

3、最后可以尝试XInclude,某些应用程序接收客户端提交的数据,将其嵌入到服务器端的XML文档中,然后解析文档,尝试payload:

复制代码
<fooxmlns:xi="http://www.w3.org/2001/XInclude">

<xi:include parse ="text"href ="file:/// etc / passwd"/> </ foo>

实验

构造payload ,引入 /etc/passwd

复制代码
<?xml version = "1.0"?>
<!DOCTYPE ANY [
    <!ENTITY f SYSTEM "file:///etc/passwd">
]>
<x>&f;</x>
相关推荐
苏能润滑油油液文哥3 分钟前
储能液冷安全边界解析:从热失控链条看冷却液的介入区间与选型指标
安全
Lcr3s1 小时前
我的DVWA靶场实践_Low难度
安全
小天源1 小时前
让访问数据可解释:IP 地球大屏、地区库更新与运行维护设计
网络·网络协议·tcp/ip
亚远景aspice2 小时前
亚远景-低空经济与具身智能:具身智能飞行器量产落地,过程合规与安全体系怎么搭
人工智能·安全·过程改进·低空经济·研发管理·亚远景科技·过程能力评估
EasyGBS2 小时前
水域乱象难管控?国标GB28181视频平台EasyGBS视频+AI双引擎赋能河湖监管
深度学习·安全·gb28181
老李IT笔记2 小时前
连不上不一定是网不好:新系统不认的服务端配置卡在哪一档
运维·服务器·网络
小此方2 小时前
Linux网络(二十八):从NAT转换到正反向代理:图解内网通信、NAPT端口映射
linux·运维·网络
万年咸鱼3 小时前
HTTPS 是如何保证传输安全的?
网络协议·安全·https
JackieDYH3 小时前
深入理解iframe的allow属性与安全实践-iframe权限点
安全
隐擎fox3 小时前
深入 Android 移动端风控与协议层对抗:内核级虚拟环境检测、网络堆栈特征伪装与住宅 IP 协同实战
android·网络·python·网络协议·tcp/ip