OWASP TOP10(2017)之【XML 外部实体(XXE)】

目录

XML以及XXE漏洞介绍

实战

利用XXE漏洞读取文件(有回显)

①读取.ext文件

②读取php文件

利用XXE漏洞读取文件(无回显)

XXE防御策略

XXE漏洞消亡原因

XXE漏洞防御


XML以及XXE漏洞介绍

XML是指可扩展标记语言,用来传输和存储数据。XML文档结构包括XML声明,DTD文档类型定义(可选),文档元素。XML的焦点是数据的内容,它把数据从HTML分离,是独立于软件和硬件的信息传输工具。HTML旨在显示信息,XML旨在传输和存储信息。

XXE漏洞全称XML External Entity Injection,即XML外部实体注入漏洞。XXE漏洞发生在应用程序解析XML时,没有禁止外部实体的加载,导致客家在恶意外部文件,造成文件读取,命令执行,内网端口扫描,攻击内网网站,发起dos攻击等危害。 

XXE漏洞的触发点往往是可以上传XML文件的位置没有对上传的xml文件进行过滤,导致可上传恶意xml文件。

DTD内容参考:DTD 简介 (w3school.com.cn)

实战

注)会涉及到一些php代码。靶场的配置什么的见视频吧。。。实战里面只简述XXE的实现方法 

利用XXE漏洞读取文件(有回显)

几种文件路径格式:

  • file://path/to/file.ext(读取本地文件)
  • http://url/file.ext(读取远程文件)
  • php://filter/read=convert.base64-encode/resource=conf.php(php文件需要使用base64编码来读取)

①读取.ext文件

Payload:

如下图所示,直接在请求体写入Payload。返回体里显示已经读取到相应内容。

②读取php文件

Payload:

如下图所示,直接在请求体写入Payload。返回体里显示已经读取到相应内容。

然后再将返回的内容通过base64解密即可得到php文件的内容。

利用XXE漏洞读取文件(无回显)

 本节测试原理:(服务器:192.168.1.105,攻击者server:192.168.1.103)

  1. 攻击者发送一个XML请求到服务器端(参考文件【请求XML】)
  2. 服务器端接收到攻击者的请求,去攻击者自定义的server端获取dtd校验文件(参考文件【test.dtd】)
  3. 攻击者server返回dtd文件到服务器端
  4. 服务器执行对应的XML,在服务器本地获取相应数据,然后将数据信息返回给攻击者server

 请求XML:

攻击者构建的dtd文件(test.dtd):

文件内容解析:

  1. 获取服务器本地的/etc/passwd文件,并将其保存到变量p1中
  2. 通过http请求使用con参数把p1的内容传递到对应的服务器上

注)前提是服务器存在XXE漏洞这些语句才能执行成功

XXE防御策略

XXE漏洞消亡原因

libxml2.9.0以后,默认不解析外部实体,导致XXE漏洞逐渐消亡。

XXE漏洞防御

①使用开发语言提供的禁用外部实体的方法:

②过滤用户提交的XML数据

关键词:<!DOCTYPE和<!ENTITY,或者,SYSTEM和PUBLIC。

视频教程:2019超详细 渗透测试/黑客入门/漏洞学习视频教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
OWASP Top 10是由Open Web Application Security Project(OWASP)组织发布的一个关于Web应用程序安全风险的列表。它列出了当前最常见的Web应用程序安全漏洞,帮助开发人员和安全专家了解并解决这些问题。 以下是OWASP Top 10的最新版本(2021): 1. 注入(Injection):指的是攻击者通过将恶意代码注入到应用程序的输入中来执行非法操作,如SQL注入、OS命令注入等。 2. 跨站脚本(Cross-Site Scripting,XSS):攻击者通过在Web应用程序中插入恶意脚本来窃取用户信息或篡改网页内容。 3. 不安全的身份验证(Broken Authentication):指的是应用程序在用户身份验证和会话管理方面存在漏洞,如弱密码、会话劫持等。 4. 暴露的敏感数据(Sensitive Data Exposure):指的是应用程序未正确保护敏感数据,导致攻击者可以获取到用户的敏感信息。 5. XML外部实体XML External Entities,XXE):攻击者利用XML解析器的漏洞来读取本地文件、执行远程请求等操作。 6. 不安全的访问控制(Broken Access Control):指的是应用程序未正确实施访问控制机制,导致攻击者可以越权访问或修改数据。 7. 安全配置错误(Security Misconfiguration):指的是应用程序或服务器配置不当,导致安全漏洞的存在,如默认密码、错误的权限设置等。 8. 跨站请求伪造(Cross-Site Request Forgery,CSRF):攻击者通过伪造合法用户的请求来执行非法操作,如修改用户信息、发起转账等。 9. 使用已知的漏洞组件(Using Components with Known Vulnerabilities):指的是应用程序使用已知存在漏洞的第三方组件,导致攻击者可以利用这些漏洞进行攻击。 10. 不足的日志记录和监控(Insufficient Logging & Monitoring):指的是应用程序未正确记录和监控安全事件,导致无法及时发现和应对攻击。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值