合集 – Pikachu(15)
1.暴力破解(Pikachu)05-022.XSS(Pikachu)05-033.CSRF(Pikachu靶场练习)05-104.SQL注入(pikachu)05-105.RCE(Pikachu)05-126.文件包含(Pikachu)05-127.不安全的文件下载(Pikachu)05-128.不安全的文件上传(Pikachu)05-129.越权漏洞(Pikachu)05-1210.目录遍历(Pikachu)05-1211.敏感信息泄露(Pikachu)05-1212.PHP反序列化(Pikachu)05-12
13.XXE漏洞(Pikachu)05-1214.不安全的URL跳转(Pikachu)05-1215.CSRF(原理)05-12
收起
原理
要补好多知识~
XXE漏洞全称XML External Entity Injection 即XML外部实体注入。
XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件和代码,造成任意文件读取、命令执行、内网端口扫描、攻击内网网站、发起Dos攻击等危害。
XXE漏洞触发的点往往是可以上传xml文件的位置,没有对上传的xml文件进行过滤,导致可上传恶意xml文件。
解析xml在php库libxml,libxml>=2.9.0的版本中默认是禁止解析xml外部实体内容的,没有XXE漏洞。
从XML相关一步一步到XXE漏洞 – 先知社区 (aliyun.com)
XML外部实体注入(XXE)的原理和应用_xml注入原理-CSDN博客
XXE(XML外部实体注入)漏洞分析——pikachu靶场复现_pikachu xxe-CSDN博客
XXE危害
读取任意文件
PHP中可以通过FILE协议、HTTP协议和FTP协议读取文件,还可利用PHP伪协议。
XML在各语言下支持的协议有:
pikachu
pikachu XXE (XML外部实体注入)(皮卡丘漏洞平台通关系列)-CSDN博客
在实施攻击之前可以简单判断一下是否存在回显数据
随便输入个包含命名实体(内部实体)的xml数据(以下代码中xxe是命名实体的实体名称):
<?xml version="1.0"?>
<!DOCTYPE ANY [
<!ENTITY xxe "茶茶" > ]>
<a>&xxe;</a>
看到回显了”茶茶“,说明存在回显。(注意:只能判断是否存在回显,不能判断是否支持外部实体)
已经判断了输入内部实体是有回显的,那接下来可以用带内外部实体注入的方法,来确定是否支持外部实体,以及实施攻击。
c:/windows/win.ini是每个windows系统都有的文件,如果确定服务器是windows系统,就可以用该文件来确定是否有xxe漏洞,当然想要读取其他文件目录,只需更改绝对路径即可
输入payload(以下代码中xxe是外部实体的实体名称):
<?xml version="1.0"?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "file:///c:/windows/win.ini" > ]>
<foo>&xxe;</foo>
东西有点多,后续还会继续学习
__EOF__
本文作者: Mchacha 本文链接: https://www.cnblogs.com/Mchacha/p/18187789 关于博主: 评论和私信会在第一时间回复。或者直接私信我。 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处! 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。