XXE漏洞

简介


XXE (XML External Entity Injection) 漏洞发生在应用程序解析 XML 输入时,没有禁止外部实体的加载。

简单的理解,一个实体就是一个变量,可以在文档中的其他位置引用该变量。

实体主要分为四种:

  • 内置实体 (Built-in entities)
  • 字符实体 (Character entities)
  • 通用实体 (General entities)
  • 参数实体 (Parameter entities)

完整的介绍可以参考:   DTD - Entities

到此网站学习一下:  http://www.w3school.com.cn/dtd/

               http://www.w3school.com.cn/xml

             http://www.w3school.com.cn/xml

             http://hublog.hubmed.org/archives/001854.html

             https://www.tutorialspoint.com/dtd/dtd_entities.htm

             http://blog.leanote.com/post/xuxi/XXE%E6%80%BB%E7%BB%93  //XXE总结

             https://security.tencent.com/index.php/blog/msg/69

            http://www.freebuf.com/articles/web/97833.html

 

危害:

对于 XXE 的危害,主要有:

  • 窃取敏感数据 (extracting sensitive data).
  • 远程代码执行 (remote code execution).
  • 攻击者可以实现任意文件读取,DOS拒绝服务攻击以及代理扫描内网等.

 

举例:

  • 服务器上面有一个xxeInject.php存在一个注入的文件,正常访问。

  • 文件内容:
<?php
#关闭Warning
error_reporting(E_ALL^E_NOTICE^E_WARNING);#加载xml文件,不懂php://input 参考下面链接
#http://taoshi.blog.51cto.com/1724747/1165499
$xmlfile = file_get_contents('php://input');
$dom = new DOMDocument();# LIBXML_NOENT: 将 XML 中的实体引用 替换 成对应的值
# LIBXML_DTDLOAD: 加载 DOCTYPE 中的 DTD 文件
$dom->loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD);$creds = simplexml_import_dom($dom);
$user = $creds->user;
$pass = $creds->pass;echo "Hello DaLao:" . "<br>" . "$user";
?>
  • 存在一个POST,XXE注入,所以我们构造代码,进行注入,因为是测试,我新建了一个文件如:C://pass.txt,内容:ONDragon'Password,我们就利用这个漏洞进行此文件的读取。
  • 构造代码:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ONDragon [
<!ELEMENT ONDragon ANY >
<!ENTITY xxe SYSTEM "file:///C://pass.txt" >]>
<creds><user>&xxe;</user><pass>ONDragon</pass>
</creds>
  • 我们打开火狐的Live Http这个小插件进行POST数据注入。

 

  • 把我们的POST数据包复制上去,然后Replay,就可以获取C://pass.txt,内容:ONDragon'Password啦。

  • 可以看到利用它,可以查看服务器上的文件。
  • 命令执行得需要服务器有一个expect扩展插件,如果按照此插件,就可以进行远程命令执行。
  • 此外还可以进行类似SSRF的攻击,内网信息收集,端口扫描等等。

转载于:https://www.cnblogs.com/DeeLMind/p/6897967.html

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linq之Expression高级篇(常用表达式类型)

目录 写在前面 系列文章 变量表达式 常量表达式 条件表达式 赋值表达式 二元运算符表达式 一元运算符表达式 循环表达式 块表达式 总结 写在前面 首先回顾一下上篇文章的内容&#xff0c;上篇文章介绍了表达式树的解析和编译。如果忘记了&#xff0c;可以通过下面系列文章提供的…

NetCore框架WTM的分表分库实现

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

WordPress WP Photo Album Plus插件‘wppa-tag’跨站脚本漏洞

漏洞名称&#xff1a;WordPress WP Photo Album Plus插件‘wppa-tag’跨站脚本漏洞CNNVD编号&#xff1a;CNNVD-201301-458发布时间&#xff1a;2013-01-24更新时间&#xff1a;2013-01-24危害等级&#xff1a; 漏洞类型&#xff1a;跨站脚本威胁类型&#xff1a;远程CVE编号&…

SpringCloudAlibaba分布式流量控制组件Sentinel实战与源码分析(上)

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

Offer是否具有法律效力?

版权声明&#xff1a;原创作品&#xff0c;同意转载&#xff0c;转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。本文地址&#xff1a; http://blog.csdn.net/jobchanceleo/archive/2008/10/17/3089644.aspx<?xml:namespace prefix o …

【单元测试框架unittest】

转载于:https://www.cnblogs.com/ppppying/p/6899750.html

MySQL 添加列,修改列,删除列 的SQL写法

ALTER TABLE&#xff1a;添加&#xff0c;修改&#xff0c;删除表的列&#xff0c;约束等表的定义。 查看列&#xff1a;desc 表名;修改表名&#xff1a;alter table t_book rename to bbb;添加列&#xff1a;alter table 表名 add column 列名 varchar(30); 试了好长时间 终于…

python项目

python实战项目&#xff1a; http://www.the5fire.com/category/python实战/ python基础教程中的十个项目: python项目练习一&#xff1a;即时标记python项目练习二&#xff1a;画幅好画python项目练习三&#xff1a;万能的XMLpython项目练习四&#xff1a;新闻聚合python项目练…

C++ 炼气期之基本结构语法中的底层逻辑

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

压缩CSS代码

function yasuoCss (s) {//压缩代码   s s.replace(/\/\*(.|\n)*?\*\//g, ""); //删除注释   s s.replace(/\s*([\{\}\:\;\,])\s*/g, "$1");   s s.replace(/\,[\s\.\#\d]*\{/g, "{"); //容错处理   s s.replace(/;\s*;/g, ";…

优惠券的工厂与策略模式实现方案

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

自然数的公理化理论体系定义的新方法

目前&#xff0c;我们人类可通过皮亚诺的五个命题和在此基础上的三个公理来定义自然数的公理化理论体系.现在&#xff0c;我们用π来定义自然数的公理化理论体系.几年前&#xff0c;美国人用2π代替π&#xff0c;看起来&#xff0c;似乎已经非常的完美了.我也比较认同这个看起…

WP8.1学习系列(第九章)——透视Pivot开发指南

Windows Phone 8 的 Pivot 控件 2014/6/18 适用于&#xff1a;Windows Phone 8 和 Windows Phone Silverlight 8.1 | Windows Phone OS 7.1 Windows Phone Pivot 应用提供了一种快速管理视图或页面的方法。该方法可以用于筛选大型数据集、查看多个数据集或切换应用视图。例如&a…

PS图层混合模式中英文对照

英文 中文 原理介绍 Normal 正常 默认的模式。不和其他图层发生任何混合。 Dissolve 溶解 溶解模式产生的像素颜色来源于上下混合颜色的一个随机置换值&#xff0c;与像素的不透明度有关。 Behind 背后 只对图层的透明区域进行编辑。该种模式只有在图层的…

ESP8266 系统环境搭建

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

无线网络配置

转载于:https://www.cnblogs.com/lingxzg/archive/2013/02/09/2909606.html

Java编程之反射中的注解详解

“注解”这个词&#xff0c;可谓是在Java编程中出镜率比较高&#xff0c;而且也是一个老生常谈的话题。我们之前在聊Spring相关的东西时&#xff0c;注解是无处不在&#xff0c;之前我们简单的聊过一些“注解”的相关内容&#xff0c;比如在Spring中是如何进行“注解”组合的。…

SCCM 2012 R2实战系列之十三:辅助站点部署

由于最近几个月一直处于AD升级项目中&#xff0c;很久没有更新SCCM的技术文档了。SCCM 2012中的辅助站点部署方法还是比较特别的&#xff0c;需要注意的地方也非常多&#xff0c;今天跟大家分享辅助站点的具体部署和配置方法。1. 前提条件加入域环境 安装IIS组件安装BITS和远程…

DevOps落地实践点滴和踩坑记录-(1)

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

asp中日期时间函数介绍

date() 获取日期&#xff0c;格式&#xff1a;2004-2-28 time() 获取时间&#xff0c;格式&#xff1a;22:24:59 now() 获取日期和时间 格式&#xff1a; 2005-5-2 22:37:30 ddate() 获取年份&#xff1a;year(d) 获取月份&#xff1a;month(d) 获取日子&#xff1a;day(…