大黑客必知必会的xxe攻击漏洞,带你了解黑客的世界
zhezhongyun 2024-12-27 17:49 55 浏览
1、xxe攻击漏洞的简介
何为XXE漏洞?XXE是指xml外部实体攻击,Xxe漏洞全称xml external entity injection即xml外部实体注入漏洞,xxe漏洞发生在应用程序解析xml输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站、发起dos攻击等危害。那么问题来了,xml又是什么???
xml是一个可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。是Internet环境中跨平台的、依赖于内容的技术,也是当今处理分布式结构信息的有效工具。早在1998年,W3C就发布了XML1.0规范,使用它来简化Internet的文档信息传输
喜欢更多知识内容可以关注微信公众号:安界网
2、xml基础
1)、 xml介绍以及用途
xml被设计用来传输和存储数据,它和html最大的区别在html是用来格式和显示数据,而xml是用来传输和存储数据,对比html它是一种层次和嵌套结构,而xml文档形成了一种树结构,它从(文档)"根部"开始(出发),一直扩展到"枝叶"。Xml允许创作者定义自己的标签和自己的文档结构,也就是说咱们可以自己去自定义树的结构以及树上面节点的名称,也就是对应的这个元素。
这个一个简单的一个xml,首先第一行它给出了xml的版本是1.0,和xml的编码是utf-8。
接下来就是xml的根节点以及下属节点,<to>就是一个节点,里面包含了对应的值,就相当于树状结构当中是这样一个结构
以下是xml的树状结构图,在根部是note,note下有no节点、from节点、heading节点、body节点
2)xml语法规则
(1)、 所有的xml元素(树的节点)都必须有一个关闭标签,否则会出现错误无法解析xml文件
(2)、 Xml标签对大小写敏感,在html当中大小写是不敏感的
(3)、 Xml必须正确嵌套,不能说咱们一这里写个<p1>这样一个标签,在另外一方写个<p2>标签,然后用<p1>闭合该标签,最后又写个<p2>,那这个时候,它就是个错误的格式,咱们必须嵌套,而不能一个标签嵌套了另外一个标签
(4)、 Xml属性值必须加引号,比如说有个p标签,标签里面有个a属性,属性里面有对应的值,那么这个sa值就是需要加引号括起来,如果没有就会报错,然后用</p>标签闭合,<p a='' sa''></p>
(5)、 实体引用 比如说<p a=''sa''></p>的这些属性中以及对应的值中会出现大于和小于等一些符号,这些符号在xml当中是有聚体含义的,咱们必须使用xml对应的实体进行对应的表示,比如说小于号对应的就是lt后对应的符号,大于号就是gt后对应的符号。
(6)、 在xml中,空格会被保留 比如说<p a='' sa''></p>中的p标签和p的结束标签,在中间如果有A(空格)B,那这个时候A和B之间的空格就会被保存。
3)、 xml元素介绍
xml元素是指从(且包括)开始标签直到(且包括)结束标签的部分,每个元素又可以有对应的属性,xml属性必须加引号 ,首先的话note是一个根元素,下面是子元素,子元素里面就是一些嵌套的关系。那么这些元素的名称都可以改变。比如说note修改为m1的一些操作.
4)、 Xml DTD介绍
刚才说了关于xml的语法规则以及对应的元素,这样一个灵活存储数据的文件格式,那我们势必要有一些约束规则来使得它符合这个规则,咱们用户定义的这个规则,才能把标明咱们这个数据是正确的,那这个时候我们就用xml DTD进行校验,
拥有正确的语法的xml被称为"形势良好"的xml。通过DTD验证的xml是"合法"的xml
5)DTD快速入门
(1)、DTD声明介绍
内部的DCOTYPE声明:<!DOCTYPE root-element [element-declaeations]>
<根元素 [元素声明]>,首先是note根元素,用了方括号括起来了
这里是对应的子元素
用子元素的描述用的是element,首先描述的是根元素note,然后对应是子元素(用括号括起来的的就是子元素),可以看见to是一个子元素。括号内的就是对应的类型,所以我们称之为内部DTD
外部文档声明:假如DTD位于xml源文件的外部,那么它应通过下面的语法被封装在一个DOCTYPED定义中:<!DOCTYPE root-element SYSTEM "filename">
这个是个xml的文件
首先用了DOCTYPE note根元素,然后用SYSTEM用引用note.dtd
而note.dtd是外部的dtd文件,这个dtd文件以下内容是描述对应的元素,结构首先是根元素note,然后对应的是子元素,接下来都是子元素对应的类型以及名称。都是用ELEMENT进行声明
(2)、DTD数据类型
PCDATAd的意思是被解析的字符数据(parsed character data) PCDATA是会被解析器解析的文本。这些文件将被解析器检查实体以及标记,可以看见这个图。PCDATA是会被解析器作为合法的内容进行解析。
CDATA的意思是字符数据(character data)
CDATA是不会解析器解析的文本,在这些文本中的标签不会被当作标记来对待,其中的实体也不会被展开,那么只作为一个普通的文本做处理
Pcdata是xml的解析器,可用于识别
Cdata无法进行识别的
(3)、DTD实体介绍
3、Xml注入产生原理
1)Xxe漏洞全称xml external entity injection即xml外部实体注入漏洞,xxe漏洞发生在应用程序解析xml输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站、发起dos攻击等危害。
Xxe/xml漏洞触发的点往往是可以上传xml文件的位置,没有对上传的xml文件进行过滤,导致可上传的恶意xml文件。
2)、 测试代码介绍
首先要的是file_get_contents()来获取对应的数据流,获取的数据流是一个php://input这样一个可读的数据流,可以通过post的提交方式来将这个流输入对应的内容,通过file_get_contents()读取然后保存到$xml, 然后调用simplexml_load_string()加载$xml存储的字符串,保存到$data,然后用echo进行格式化输出。
3)Xxe漏洞利用-任意文件读取
首先这里是我们的一个靶机,我们用burp进行登录抓包
可以看见我们的数据包是这样的,其中就有一些xml的一些格式,我们将数据包发送到repeater模块
这个是我们的读取本地文件的payload,利用file伪协议去读取c盘下的win.ini文件内容
那么我用这个payload读取了d盘下的1.txt文件,并且返回了文本中的内容
4)读取php文件
直接利用file协议读取php文件会出现错误,那么需要使用base64编码来进行读取
那我直接读取了本地的xxe.php内容,并且以base64编码的形式输出,那么我们就可以拿这个编码进行base64解码
解码出来的就是我们的xxe漏洞的代码
另外也有不同语言支持不同的协议。
最后喜欢我文章的朋友请加圈子关注我们,私信关键词:加群。
识,提升大家的网络安全技能一直是我们的初衷和愿景,让我们共同成为守护信息世界的"SaFeMAN"。
还有可以关注我们微信公众号,在公众号上输入安界网,就可以关注到我们。
相关推荐
- 不看必后悔!15个三星GoodLock隐藏小技巧~(上)
-
很多刚用三星手机的星粉们,一定对三星GoodLock这个宝藏App还不是很了解,今天就带大家一起详细去看看GoodLock这个大家族究竟有多少宝藏功能及成员呢?让我们一起来看看吧~由于Good...
- 惊魂幻象理智值监控WA!大字体+范围提示一目了然
-
一个WA助你轻松监控大幻象理智值,不再错过恢复时机这个WA用大字体实时同步我们的理智值下面的图标提示恢复宝珠的剩余次数上面的图标高亮则意味着我们在宝珠的恢复范围内我们可以将图标随意移动到适合自己观察的...
- 盘点十个超炫的jQuery插件(jquery插件是干什么的)
-
“DevExpress14.2新版发布会”即将推出。心动不如行动,赶快报名吧!我们期待与您相约。今天小编为大家搜罗了十个超酷的jQuery插件,这可以使你的网站界面更加友好。jQuery创造了令人难...
- Google官方梳理,Android 多返回栈技术详解
-
用户通过系统返回按钮导航回去的一组页面,在开发中被称为返回栈(backstack)。多返回栈即一堆"返回栈",对多返回栈的支持是在Navigation2.4.0-alpha0...
- 说三星手机系统不好用,因为没有玩明白三星,三星Diy功能超强大
-
都说三星手机系统不好用,其实真正用起来,挺好用的三星手机系统像块没打磨的玉,默认设置是基础款,用着普通。但你要是肯花点时间,它能变得特别顺手。关键就在一个叫GoodLock的工具,它是三星自家出的...
- Sam Helper三星手机用户必装神器(三星手机必装app)
-
SamHelper这款软件集合了三星手机主题工具当前主题o主题路径o主题安装系统设置屏幕模式o状态栏o文件o频段o暗码Lock&LabsGoodLockoGalaxyLa...
- 外卖套餐搭配的探索和应用(外卖套餐搭配技巧)
-
本文系外卖美食知识图谱系列的第三篇文章,从技术层面我们会介绍外卖套餐搭配的技术方案,包括离线、实时的套餐搭配的迭代,套餐质量评估方案,同时会介绍套餐搭配的业务应用。1.背景让用户更方便快捷地选购到满...
- 用几行原生JS就可以实现丝滑的元素过渡效果
-
作者:ConardLi大家可以看下下面这个应用的页面切换体验,是不是很丝滑~做过体验优化的朋友应该都清楚,如果用原生的CSS或者JS动画去实现,想要实现出类似的效果,不会特别简单,而且也要考...
- 速腾车主RNS315固件及2016年6月地图升级详细教程
-
本来打算买个大众原厂的地图卡,后来在网上看其实不需要原厂地图卡也可以升级,于是开始在网上收集资料,开始天真的以为只要有密匙文件修改一下就可以免费升级了,其实最主要的还是破解的固件,不知道为什么,网上找...
- 学习一个母词act,一次解析一串关联、复合、衍生词族
-
首先形义解读一下act的原始意象,A是力量与行动的开始C是范围的覆盖T是目标目的的接触与刻度合在一起,行动行为艺术力量的复合行为以下是关于act的复合词、词根词缀衍生词及其变形后的词根衍生词的详细...
- 优迈系统(一体化控制柜)快车调试(八)
-
逻辑故障和驱动故障分析段码管上显示警告码和故障码对照表警告码操作模式故障码操作模式或驱动故障AL000EPC(紧急电源管制模式)ER100DTC(门在设定时间内不能关到位)AL001COR(复位模式)...
- Layui简单实现左侧菜单和Tab选项卡动态操作
-
<!DOCTYPEhtml><html><head><metacharset="utf-8">...
- 码农如何快速打造一个有设计感的网站
-
像我这样的程序员来说经常被“设计”这个词吓到,因为我是一名程序员而不是设计师,我拥有的是计算机学位证,另外我对ComicSans字体并不介意。(注:ComicSans字体是Win95附带...
- vue3 新特性 computed、watch、watchEffect 看完就会
-
1、watchEffectwatchEffect侦听器是一个副作用函数,不需要指定监听的某个属性,监视的回调中用到哪个属性,就会监听哪个属性,一旦运行就会立即执行。watchEffect与com...
- 10个冷门但非常实用前端开发者很少用的CSS规则
-
许多开发者只学了基础——比如修改颜色、设置字体或创建弹性布局——就止步不前。但CSS是一门精深而多用途的语言,掌握后能帮你构建优雅、高效且无障碍的界面。无论你是从零搭建还是微调设计系统,掌握一些高...
- 一周热门
- 最近发表
- 标签列表
-
- HTML 教程 (33)
- HTML 简介 (35)
- HTML 实例/测验 (32)
- HTML 测验 (32)
- JavaScript 和 HTML DOM 参考手册 (32)
- HTML 拓展阅读 (30)
- HTML常用标签 (29)
- HTML文本框样式 (31)
- HTML滚动条样式 (34)
- HTML5 浏览器支持 (33)
- HTML5 新元素 (33)
- HTML5 WebSocket (30)
- HTML5 代码规范 (32)
- HTML5 标签 (717)
- HTML5 标签 (已废弃) (75)
- HTML5电子书 (32)
- HTML5开发工具 (34)
- HTML5小游戏源码 (34)
- HTML5模板下载 (30)
- HTTP 状态消息 (33)
- HTTP 方法:GET 对比 POST (33)
- 键盘快捷键 (35)
- 标签 (226)
- HTML button formtarget 属性 (30)
- CSS 水平对齐 (Horizontal Align) (30)