XXE外部实体注入攻击讲解_第1页
XXE外部实体注入攻击讲解_第2页
XXE外部实体注入攻击讲解_第3页
XXE外部实体注入攻击讲解_第4页
XXE外部实体注入攻击讲解_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

20XX/XX/XXXXE外部实体注入攻击讲解汇报人:XXXCONTENTS目录01

XXE注入基础认知02

XXE注入的核心原理03

XXE注入的典型攻击场景04

XXE注入实操案例演示05

XXE注入的防御方案06

课程学习总结XXE注入基础认知01XXE注入的核心概念XXE注入即XML外部实体注入,指攻击者通过构造恶意XML代码,触发外部实体加载以窃取数据。XXE注入的触发条件当应用程序解析XML时未禁用外部实体,且未对输入做严格校验,就可能被攻击者利用。XXE注入的典型表现形式常见形式有引用本地文件、访问内网资源,如攻击者可读取服务器上的/etc/passwd文件。XXE注入的基本定义XML基础语法回顾XML文档结构规范XML文档需包含声明、根元素等核心结构,如<?xmlversion="1.0"?>开头,<root>作为根标签包裹内容。实体引用规则说明XML支持预定义实体与自定义实体,像<代表<,自定义实体需通过<!ENTITY>声明后调用。元素与属性书写要求XML元素需严格闭合,属性值需用引号包裹,例如<bookname="XML入门">这种规范写法。XXE注入的核心原理02XML外部实体机制说明XML外部实体的定义与语法外部实体是XML中引用外部资源的机制,语法为<!ENTITY实体名SYSTEM"外部资源路径">,可调用本地或远程资源。XML外部实体的解析逻辑XML解析器默认会解析外部实体,将外部资源内容加载到文档中,这一特性为XXE攻击提供了基础。XML外部实体的合法应用场景在合法场景中,可通过外部实体引用公共XML片段,如电商平台引用统一的地址校验规则XML文件。XML解析器未禁用外部实体若XML解析器默认开启外部实体支持,攻击者可构造含外部实体的恶意XML,触发注入。利用DOCTYPE声明引入外部实体攻击者在XML的DOCTYPE中声明外部实体,指向恶意资源,诱导解析器加载执行。通过实体引用触发恶意操作在XML正文引用已声明的外部实体,解析器解析时会读取外部资源,引发信息泄露等风险。XXE注入的触发逻辑常见注入载体类型

XML格式配置文件如网站的config.xml配置文件,攻击者可篡改实体引用,读取服务器本地敏感文件。

XML格式API请求报文像电商平台的订单提交API,攻击者构造恶意实体注入,窃取用户隐私数据。

XML格式文档上传比如在线文档编辑平台的docx上传,隐藏恶意实体代码,触发服务器解析漏洞。XXE注入的典型攻击场景03敏感文件读取攻击

读取系统核心配置文件攻击者可通过XXE注入读取/etc/passwd等系统核心文件,获取用户账号等敏感信息,如2017年某电商平台曾遭此类攻击。

读取数据库配置文件利用XXE注入读取数据库连接配置文件,获取账号密码,进而非法访问数据库,比如某金融网站曾因此泄露用户数据。

读取内部业务文件攻击者通过XXE注入读取企业内部业务报表、合同等文件,窃取商业机密,某知名车企曾发生此类数据泄露事件。利用实体声明遍历端口攻击者构造含端口列表的外部实体,通过服务器返回状态判断如80、443等端口是否开放。结合DTD文档批量探测借助外部DTD文档加载端口字典,批量扫描内网服务器端口,如Redis的6379端口。利用盲注逻辑验证端口通过盲注方式,根据响应时长判断内网目标端口状态,例如探测MySQL的3306端口。内网端口探测攻击命令执行攻击利用系统命令执行漏洞读取敏感文件

攻击者可构造恶意XML触发系统命令,如通过cat/etc/passwd读取Linux系统用户信息文件。借助命令执行进行内网横向渗透

攻击者通过执行ping、ipconfig等命令探测内网,还可利用ssh命令控制其他主机。钓鱼式文件窃取攻击

伪造邮件诱导点击植入恶意代码攻击者伪装成官方邮件,诱导用户点击含恶意XML的链接,触发XXE读取本地敏感文件。

仿造可信站点嵌入恶意XML表单攻击者仿造企业内网登录页,嵌入恶意XML表单,用户提交时触发XXE窃取本地文件。

利用办公软件漏洞植入恶意文档攻击者将含XXE的恶意文档通过钓鱼发送,用户打开后触发攻击,窃取电脑内隐私文件。XXE注入实操案例演示04靶场环境搭建说明

基础服务器环境部署选用UbuntuServer系统搭建Web服务,配置Apache或Nginx,确保服务器可正常接收HTTP请求。

脆弱Web应用配置部署存在XXE漏洞的PHP测试应用,关闭实体解析安全限制,保留外部实体引用功能。

测试工具准备配置BurpSuite抓包工具、XML注入测试脚本,确保能精准捕获和篡改HTTP请求中的XML数据。文件读取漏洞实操本地敏感文件读取演示构造含外部实体的XMLPayload,读取服务器/etc/passwd文件,获取系统用户账号等核心敏感信息。内网文件跨权限读取演示利用XXE漏洞绕过权限限制,读取内网中其他服务器的配置文件,如MySQL的my.ini配置文件。隐藏文件读取演示通过构造特殊XML实体,读取服务器中以“.”开头的隐藏文件,如Linux系统下的.bash_history文件。端口探测漏洞实操

构造含端口探测的XMLpayload以某电商网站后台接口为靶标,构造包含端口扫描指令的XML实体,提交至存在XXE的接口。

利用回显获取端口状态信息若接口存在回显,可直接获取开放端口列表,曾有企业因该漏洞导致内部数据库端口暴露。

无回显下的盲探测验证通过DNSlog平台接收端口探测反馈信息,某金融平台曾因未过滤外部实体遭此类盲测攻击。漏洞危害结果验证敏感文件窃取结果验证通过XXE注入成功读取某企业内网的/etc/passwd文件,获取到系统用户信息,证明信息泄露风险。服务器权限篡改结果验证利用XXE注入修改某电商平台的服务器配置文件,篡改商品价格,验证权限篡改的危害。内网横向渗透结果验证借助XXE注入发起内网端口扫描,发现某金融机构内网未设防的数据库端口,验证横向渗透风险。XXE注入的防御方案05禁用外部实体配置XML解析器全局禁用外部实体在Java环境中,可通过设置DocumentBuilderFactory的FEATURE_SECURE_PROCESSING属性来全局禁用外部实体。具体开发语言针对性配置PHP开发时,可将libxml_disable_entity_loader设置为true,从解析层面阻断外部实体加载。框架级参数限制配置使用Spring框架时,可在XML配置文件中开启XSD校验并禁用外部实体引用功能。过滤特殊字符与实体引用严格过滤用户输入中的&、<!ENTITY等特殊标识,如某电商平台拦截含实体声明的恶意请求。验证输入数据格式对XML输入进行格式校验,仅保留合法标签与内容,像政务系统拒绝不符合规范的XML提交。限制输入长度与范围设定用户输入的最大长度,限定字段取值范围,如金融平台拦截超长的XML注入语句。过滤用户输入内容使用更安全的数据格式

采用JSON格式传输数据JSON不支持外部实体引用,像电商平台的订单数据传输,用JSON可从根源规避XXE注入风险。

选用二进制数据格式如Protobuf这类二进制格式,无XML的实体解析机制,企业内部系统交互常用它防XXE。课程学习总结06核心知识点梳理

XXE攻击的基础原理XXE通过XML外部

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论