XXE漏洞(Pikachu)

news/2024/9/27 5:51:27

原理

要补好多知识~

img

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>

image-20240509232033175

看到回显了”茶茶“,说明存在回显。(注意:只能判断是否存在回显,不能判断是否支持外部实体)

已经判断了输入内部实体是有回显的,那接下来可以用带内外部实体注入的方法,来确定是否支持外部实体,以及实施攻击。

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>

image-20240509232520349

东西有点多,后续还会继续学习

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/30561.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

平均汇总(Power Pivot)

问题:如何在数据透视表中显示类似列总计的平均汇总?解决:在数据模型中添加列Dax公式:=SUMX(区域,区域[数量]*(区域[物料编码]=earlier(区域[物料编码])))/distinctcount(区域[日期 (月)])数据透视表布局: 行字段:物料编码、平均 列字段:组后为月的日期 值字段:数量 其他…

基于webapi的websocket聊天室(三)

上一篇处理了超长消息的问题。我们的应用到目前为止还是单聊天室,这一篇就要处理的多聊天室的问题。 思路第一个问题,怎么访问不同聊天室这个可以采用路由参数来解决。我把路由设计成这样/chat/{room}。访问不同路径就代表进入不同聊天室。第二个问题,怎么创建不同的聊天室原…

越权漏洞(Pikachu)

原理 该漏洞是指应用在检查授权时存在纰漏,使得攻击者在获得低权限用户账户后,利用一些方式绕过权限检查,访问或者操作其他用户或者更高权限。越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定,一旦权限验证不…

同单元格内计算加号个数

问题:一个单元格内若干个加号,计算其个数 函数公式解决:传统套路 =LEN(A2)-LEN(SUBSTITUTE(A2,"+",)) 新套路 =COUNTA(TEXTSPLIT(A2,"+"))-1 正则套路 =COUNTA(REGEXP(A2,"[^+]"))-1

rdp利用技巧总结

近期在项目中管理员在rdp挂载之后搞掉了管理员,想着有时间就整理下针对rdp的利用方法。针对挂盘的利用方法复制文件这个不多说,可以根据的不同的挂盘来决定是拖文件还是放启动项。有一些自动文件监控和拷贝的应用,如:https://github.com/cnucky/DarkGuardianDarkGuardian是一…

小小redis持久化,拿捏

前言 我们先来说说什么是持久化持久化顾名思义就是数据长久保存,Redis为什么需要持久化呢,好呆的问题,Redis数据是存储在内存中的,内存数据的特点就是一旦重启就什么都没了我们将文件由内存中保存到硬盘中的这个过程,我们叫做数据保存,也就叫做持久化。但是把它保存下来不…

表格结构转换(Power Query)

问题:左表转成右表let源 = Excel.CurrentWorkbook(){[Name="表1_5"]}[Content],添加公司名列 = Table.TransformColumns(Table.ExpandTableColumn(Table.Group(源, {"件号"}, {"内容", each Table.AddIndexColumn(_,"公司名",1)}), &…

实战中内网穿透的打法

前言在内网渗透时,一个WebShell或CobaltStrike、Metasploit上线等,只是开端,更多是要内网横向移动,扩大战果,打到核心区域。但后渗透的前提是需要搭建一条通向内网的“专属通道”,才能进一步攻击。可实战中因为网络环境不同,所利用的方式就不同。以下为自我总结“实战中…