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

小迪安全109-php模型动态调试,反序列化,变量覆盖,tp框架,原生pop链

案例一 原生代码变量覆盖,duomicms

变量覆盖是什么

这个时候为什么会输出xiaodi呢

就是因为$a=b所以$$a=$b  所以就让$b=xiaodi

搞不到源码,看老师的学吧

这一般在web端页面是看不到,也不好发现,代码可以看关键字和函数

例如$$这个符号

搜索完之后有很多,首先看前端和配置界面,再去看后台的界面

先看有变量且可以控制的文件

有可控变量,这里很可能就是脆弱点

而这个代码就是个数组接受$_get,$_post,$_cookie的值,在网页传输数据,例如get传输name激素?name=xiaodi,因为as复制给了reques,在代码内接受$_get  变量name的值,因为是经过数组传递的值,所以就是$_get[name]=xiaodi  数组的表达方式赋值给$k=》$v  那就是$name=xiadi

比起$name=$_get[name]  这样就直接简化挨个写的代码,这样可以直接遍历获取提交的值并赋值给变量。

这里存在变量覆盖但本身不是个漏洞,需要利用起来的才叫漏洞

我们登录到后台

正常这里有对cookie值的验证,那我们可不可以进行变量覆盖,覆盖为管理员的,那我们就可以访问管理员界面。

我们来到管理员登录文件,看他能不能进行变量覆盖,就看他有没有包含能变量覆盖的文件

包含了

看代码逻辑检测登录就是

res=1就可以返回值

但是变量res是由checkuser创建的,跟踪checkuser

这里就是接受密码,然后去数据库对比查询,密码错误就返回-1,密码没有函数就返回-2

正常逻辑就返回1。

如果已经登录在访问后台就不需要在登录,这是怎么判断,再去看login文件

keepuser,

s形id里面有对应的三个值就返回1,没有就返回-1

变量覆盖就把当前这三个值强制写到当前浏览器里面去

现在就通过动态调试获取登录的session值

如何就通过变量覆盖技术,让为空session有管理员的值

下个断点

这里老师环境出问题段不下来,直接看数据库userid是什么值

1,1,admin

对应的上

这里要覆盖s形数据必须文件开启了session_start才行

构造poc

为什么是exchang.php文件,因为他包含了文件并且开启session

直接访问

session已经强制存储

在访问后台界面admin

直接进入

就相当于这样

案例二-phpmyadmin-原生反序列化

这就直接搜关键字,就两个函数unserialize

那就这两个地方

对于反序列化漏洞的挖掘,要看触发了那些魔术方法,魔术方法里面有什么东西,

而这里就去看调用的wakeup方法,找出来看看

这个方法也要先看看这个代码准备,里面有没有对象

这里就调用了一个对象,在这个对象里面找有没有wakeup方法,

全局搜索一下wakeup方法

有,但是不能乱找,比如第一个wakeup在这个类里面

而触发反序列化的地方并不能触发这个类,第二个在看wakeup有没有能触发影响安全的问题

再看看第二个wakeup

慢慢看都是干嘛的,转到load的声明看看

eval,危险函数,要注意了,file-get-contents可以读取任意文件

这就看看getsuorre这个比哪里怎么来的,跟踪看看

返回个source的变量值

看到这里利用链就出来了,怎么构造接受的值

这个危险函数在这个类里面,刚好我们反序列化文件调用了这个类

显示找到了接受反序列化值的地方,然后load里面有触发的魔术方法,在任何发现了危险函数,接受的getsource的值,跟踪发现是就是返回变量source的值,那就可以构造序列化值了

现在就去找文件触发点,然后传入序列化值

然后就根据代码要求传递值就可以了

最终poc

成功读取到1.txt的文件内容

案例三演示案例-PHP审计-动态调试-框架反序列化-KiteCMS

版本问题搭建不起来

看主页有tp框架开发的提示

但是不知道具体tp版本号怎么在代码搜索,直接veision关键字,搜

5.1.37

反序列化值生成工具

自动生成

上一个案例是借助一个反序列化操作函数的,而这个是用到了phar的反序列化

这个又是什么

参考链接phar反序列化 - My_Dreams - 博客园

phar将类似java文件的jar文件

上半部分是链,下半部分是生成phar

这个是案例里面生成的文件,上面class调用的链来攻击的,而我们的靶场是tp搭建就要用到tp的链是由两个模板生成的,我们就要把上面调用的链改成tp生成的模板

就要第二个文件的内容复制到生成phar的链里面去

复制好好之后第一个文件要复制这两个内容

在生成phar的文件内构造一下

这里还修改了一些删除了案例调用的链,因为我们是用到tp框架的链,上面已经生成了,在把变量object改成变量a,上面第二条数据也要改成$a等于那个值

这里命令就执行个计算器calc,然后把变量system为空全部为空,就不执行命令

这里要生产phar文件要打开一个开关才行,php5.6之后默认是开启的

访问报错了

这里有参数值,去掉,不应该有。

案例里面的利用方式是有一个文件上传点,只允许上传图片也没啥,把生成的phar后缀改成gif上传上去就行了,,然后用到确定文件的函数,去访问这个上传的文件然后就可以利用phar执行命令

这里文件还是gif

这就要全局搜索is_dir  

 file_exists

这种类似的函数

搜索到这个看看

变量dir从参数来,get和post提交得到,现在就需要找一个文件上传的地方

ok开干poc

后面路径是上传完之后phar包的路径

弹计算机了,命令执行成功

扩展知识,php反序列化链

如果要用到刚刚phpmyadmin利用phar的方式去利用,就要把上半部分的链换成phpmyamdin的利用链

jian

kang

相关文章:

小迪安全109-php模型动态调试,反序列化,变量覆盖,tp框架,原生pop链

案例一 原生代码变量覆盖,duomicms 变量覆盖是什么 这个时候为什么会输出xiaodi呢 就是因为$ab所以$$a$b 所以就让$bxiaodi 搞不到源码,看老师的学吧 这一般在web端页面是看不到,也不好发现,代码可以看关键字和函数 例如$$这…...

Python 练习项目:MBTI 命令行测试工具

在当今数字化的时代,心理测试工具越来越受到欢迎,它们帮助人们更好地了解自己,做出更明智的职业选择,甚至改善人际关系。MBTI(迈尔斯-布里格斯性格分类法)是其中一种广为人知的人格测试,通过评估个人在四个维度上的偏好(外向-内向、实感-直觉、理智-情感、判断-理解),…...

zynq7000 + ucos3 + lwip202_v1_2调试过程

1 现在裸机应用上验证lwip 跑起来可能会报错,看下面的链接解决 zynq 网卡Phy setup error问题 zynq 网卡Phy setup error问题-CSDN博客 2 ping同以后,在zynq上添加ucos系统 链接如下: ZYNQ移植uCOSIII_zynq ucos-CSDN博客 3 移植lwip协议…...

Oracle数据库数据编程SQL<2.2 DDL 视图、序列>

目录 一、Oracle 视图(Views) (一) Oracle 视图特点 (二)Oracle 视图创建语法 关键参数: (三)Oracle 视图类型 1、普通视图 2、连接视图(可更新) 3、对象视图 4…...

关于bug总结记录

1、vs中出现bug error C1083:无法打开文件 链接:vs中出现bug error C1083:无法打开文件_vs20151083错误解决方法-CSDN博客 2、 VS小技巧:系统却提示:示msvcp120.dll丢失 链接:VS小技巧:系统却提示:示msvc…...

ClickHouse与TiDB实操对比:从入门到实战的深度剖析

ClickHouse与TiDB实操对比:从入门到实战的深度剖析 宝子们,在当今数据驱动的时代,选择合适的数据库对于处理海量数据和支撑业务发展至关重要。ClickHouse和TiDB作为两款备受关注的数据库,各自有着独特的优势和适用场景。今天&…...

【测试开发】OKR 小程序端黑盒测试报告

【测试报告】OKR 小程序端 项目名称版本号测试负责人测试完成日期联系方式OKR 小程序端4.0马铭胜2025-03-2515362558972 1、项目背景 1.1 OKR 用户端 在如今这个快节奏的时代中,个人和组织的成长往往依赖于清晰、明确且意义深远的目标。然而,如何设定…...

LibVLC —— 《基于Qt的LibVLC专业开发技术》视频教程

🔔 LibVLC/VLC 相关技术、疑难杂症文章合集(掌握后可自封大侠 ⓿_⓿)(记得收藏,持续更新中…) 《基于Qt的LibVLC专业开发技术》课程视频,(CSDN课程主页、51CTO课程主页) 适合具有一些C++/Qt编程基础,想要进一步提高或涉足音视频行业的。本课程分7章节,共计35小节。…...

故障识别 | 基于改进螂优化算法(MSADBO)优化变分模态提取(VME)结合稀疏最大谐波噪声比解卷积(SMHD)进行故障诊断识别,matlab代码

基于改进螂优化算法(MSADBO)优化变分模态提取(VME)结合稀疏最大谐波噪声比解卷积(SMHD)进行故障诊断识别 一、引言 1.1 机械故障诊断的背景和意义 在工业生产的宏大画卷中,机械设备的稳定运行…...

2025年最新自动化/控制保研夏令营预推免面试真题分享(东南大学苏州校区/华东理工/南航/天大)

笔者来2021级本科自动化专业,以下部分将介绍我在夏令营以及预推免期间发生经历和问题 东南大学苏州校区蒙纳士大学联培 东南大学苏州校区的项目算是一个比较小众的项目,是第一年在苏州校区,二三年到南京校区找导师(不提供住宿自…...

深度学习笔记19-YOLOv5-C3模块实现(Pytorch)

🍨 本文为🔗365天深度学习训练营中的学习记录博客 🍖 原作者:K同学啊 一、前期工作 1.导入数据并读取 import torch import torch.nn as nn import torchvision.transforms as transforms import torchvision from torchvisio…...

SpringCloud-环境和工程搭建

前言 JDK用17,MySQL用8.0 微服务就是微小的服务 一个微服务只做一个事情 基本概念 打开官网 spring springcloud就是给我们提供工具,方便我们来弄微服务 springcloud是分布式微服务架构的一站式解决方案 Distributed/versioned configuration 分布…...

React 中shouldComponentUpdate生命周期方法的作用,如何利用它优化组件性能?

大白话React 中shouldComponentUpdate生命周期方法的作用,如何利用它优化组件性能? 在 React 里,shouldComponentUpdate 这个生命周期方法就像是一个“关卡守卫”,它能决定组件是否需要重新渲染。组件重新渲染是个挺费性能的事儿…...

AI写一个视频转图片帧工具(python)

现在的AI写python太方便了 说的话 我想用python实现一个能够将视频的所有帧数转化为图片的软件,可以自由配置转换的帧率或者全部,需要有界面,我需要增加一点功能,就是我需要读取出视频的分辨率,然后设置输出帧的分辨…...

React第三十一章(组件实战)

组件实战 这一章建议大家看完hooks css 原理 组件 这些章节之后再来看,这样会更好理解。 本章是额外新增的,因为之前的知识大家都掌握的差不多了,所以这一章节主要是让大家动手实践,巩固一下前面的知识。 那么你会学到什么&#…...

详细介绍WideCharToMultiByte()

书籍:《Visual C 2017从入门到精通》的2.7 字符串 环境:visual studio 2022 内容:几个字符串类型->(将单字节char*转换为宽字节wchar_t *)(将宽字节wchar_t* 转换为单字节char *) WideChar…...

Qt开发:QFileDialog的使用

文章目录 一、QFileDialog的介绍二、QFileDialog的常用静态方法三、完整示例 一、QFileDialog的介绍 QFileDialog 是 Qt 框架中提供的一个用于文件选择的标准对话框类,它允许用户在应用程序中选择文件或目录。它是跨平台的,在不同操作系统上会自动适配本…...

深度学习篇---回归分类任务的损失函数

文章目录 前言一、分类任务常用损失函数1. 交叉熵损失(Cross-Entropy Loss)数学形式使用场景特点训练状态分析损失下降损失震荡训练损失低但是验证损失高 2. Hinge Loss(合页损失)数学形式适用场景特点训练状态分析损失趋近于0损失…...

【MLP-BEV(10)】BEVPooling V1和BEVPooling V2的view_transformer,进行鱼眼图片实践

文章目录 先说说 BEVPoolv1步骤1:3D点生成步骤2 2D特征采样和BEV特征生成特点再谈谈BEVPoolv2步骤1:3D点生成步骤2: 计算索引关系步骤3: `voxel_pooling`计算鱼眼图片进行实践步骤1、3D点生成(基于Kannala-Brandt 进行调整)步骤2、2D特征采样和BEV特征生成(1) 体素化 (Voxe…...

上海SMT贴片技术解析与行业趋势

内容概要 随着长三角地区电子制造产业集群的快速发展,上海作为核心城市正引领着SMT贴片技术的革新浪潮。本文聚焦表面组装技术在高密度互连、微间距贴装等领域的突破性进展,通过解析焊膏印刷精度控制、元件定位算法优化等核心工艺,展现上海企…...

RAG优化:python从零实现[吃一堑长一智]循环反馈Feedback

本文将介绍一种有反馈循环机制的RAG系统,让当AI学会"吃一堑长一智",给传统RAG装了个"后悔"系统,让AI能记住哪些回答被用户点赞/拍砖,从此告别金鱼记忆: 每次回答都像在玩roguelike:失败结局会强化下次冒险悄悄把优质问答变成新知识卡牌,实现"以…...

Ubuntu 防火墙配置

Ubuntu 防火墙配置 一、UFW 基础操作二、核心规则配置三、高级功能四、特殊场景配置五、规则管理六、默认策略与安全建议七、故障排除 一、UFW 基础操作 检查 UFW 状态 sudo ufw status # 查看防火墙状态 sudo ufw status verbose # 显示详细规则 sudo ufw status numbered #…...

网络运维学习笔记(DeepSeek优化版) 024 HCIP-Datacom OSPF域内路由计算

文章目录 OSPF域内路由计算:单区域的路由计算一、OSPF单区域路由计算原理二、1类LSA详解2.1 1类LSA的作用与结构2.2 1类LSA的四种链路类型 三、OSPF路由表生成验证3.1 查看LSDB3.2 查看OSPF路由表3.3 查看全局路由表 四、2类LSA详解4.1 2类LSA的作用与生成条件4.2 2…...

【实战ES】实战 Elasticsearch:快速上手与深度实践-2.2.1 Bulk API的正确使用与错误处理

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 Elasticsearch Bulk API 深度实践:性能调优与容错设计1. Bulk API 核心机制解析1.1 批量写入原理剖析1.1.1 各阶段性能瓶颈 2. 高性能批量写入实践2.1 客户端最佳…...

Oracle 23ai Vector Search 系列之2 ONNX(Open Neural Network Exchange)

文章目录 Oracle 23ai Vector Search 系列之2 ONNX(Open Neural Network Exchange)ONNX基本概念ONNX(Open Neural Network Exchange)ONNX Runtime ONNX Runtime 在Oracle数据库中的集成参考 Windows 环境图形化安装 Oracle 23ai Oracle 23ai Vector Search 系列之1 架构基础 Or…...

前端 - ts - - declare声明类型

在使用typeScript的项目中 需要声明属性类型 单独的局部属性 可以直接在当前文件中声明 全局属性需要在项目根目录下新建.d.ts文件 vite会自动识别.d.ts类型文件 在该文件中使用declare声明类型有三种写法 1、在某种类型的文件中声明 2、声明window上的属性类型 3、全局声明…...

Processor System Reset IP 核 v5.0(vivado)

这个IP的作用,我的理解是,比普通按键复位更加高效灵活,可以配置多个复位输出,可以配置复位周期。 1、输入信号: 重要的信号有时钟clk信号,一般连接到系统时钟;输入复位信号,一般是外…...

基于dify平台批量分析excel格式信息

如何以表格形式批量输入一些信息,然后让大模型以对话应用形式逐条进行推理分析? 这里提供一个分步解决方案,结合 Dify平台功能 和 API调用优化 的思路,既保证效率又降低复杂度: 1. 优先检查 Dify 的「数据集」功能 Di…...

GMII 接口

文章目录 概述硬件拓扑GMII 接口站管理接口发送数据时序接收数据时序参考 本文为笔者学习以太网对网上资料归纳整理所做的笔记,文末均附有参考链接,如侵权,请联系删除。 概述 GMII 是千兆网的MII接口,这个也有相应的 RGMII 接口&…...

学习不同电脑cpu分类及选购指南

关于电脑cpu 一、CPU型号的核心组成与命名规则Intel命名规则:AMD命名规则:5. 后缀:Intel常见后缀及其含义:AMD后缀一些常见的后缀及其含义:二、主流品牌CPU的分类与性能差异三、区分CPU型号的实用方法四、主流品牌CPU对比与选择建议五、选购CPU的注意事项关于不同主流CPU的…...

Android 动态设置默认Launcher(默认应用 电话-短信-浏览器-主屏幕应用))

Android 动态设置默认Launcher(默认应用 电话-短信-浏览器-主屏幕应用)) 文章目录 场景需求参考资料思路期待效果 实现方案源码流程分析和思路实现DefaultAppActivityHandheldDefaultAppFragmentHandheldDefaultAppPreferenceFragmentDefaultAppChildFragmentDefaul…...

23种设计模式-策略(Strategy)设计模式

策略设计模式 🚩什么是策略设计模式?🚩策略设计模式的特点🚩策略设计模式的结构🚩策略设计模式的优缺点🚩策略设计模式的Java实现🚩代码总结🚩总结 🚩什么是策略设计模式…...

游戏引擎学习第188天

回顾并计划今天的内容 原本这周的目标是进行可视化操作的尝试,但每一天都被一些棘手的bug和问题所阻碍,导致我们一直没能实现这个目标。直到今天,星期四,我们终于解决了这些问题,所有功能都能正常运行了,所…...

TF-IDF——自然语言处理——红楼梦案例

目录 一、红楼梦数据分析 (1)红楼梦源文件 (2)数据预处理——分卷实现思路 (3)分卷代码 二、分卷处理,删除停用词,将文章转换为标准格式 1.实现的思路及细节 2.代码实现&#…...

Oracle数据库数据编程SQL<2.3 DML增、删、改及merge into>

目录 一、DML数据操纵语言(Aate Manipulation Language) 二、【insert】插入数据 1、单行插入 2、批量插入 3、将数据同时插入到多张表insert all/insert first 三、【update】 更新数据 1、语法 2、举例 3、update使用注意事项: 四、【delete…...

面试计算机操作系统解析(一中)

判断 1. 一般来说,先进先出页面置换算法比最近最少使用页面置换算法有较少的缺页率。(✘) 正确答案:错误解释:FIFO(先进先出)页面置换算法可能导致“Belady异常”,即页面数增加反而…...

启山智软实现b2c单商户商城对比传统单商户的优势在哪里?

启山智软实现 B2C 单商户商城具有以下对比优势: 技术架构方面 先进的框架选型:基于 SpringCloud 等主流框架开发,是百万真实用户沉淀并检验的商城系统,技术成熟稳定,能应对高并发场景,保证系统在大流量访…...

蓝桥杯备考:贪心问题之均分纸牌

咱的贪心策略就是每次分好一个堆儿&#xff0c;如果某个堆已经是满足题意了&#xff0c;就不用管这个堆了&#xff0c;否则要向下一个堆借几个元素 #include <iostream> using namespace std; const int N 110; typedef long long ll; int a[N]; int n; ll x; int cnt…...

免去繁琐的手动埋点,Gin 框架可观测性最佳实践

作者&#xff1a;牧思 背景 在云原生时代的今天&#xff0c;Golang 编程语言越来越成为开发者们的首选&#xff0c;而对于 Golang 开发者来说&#xff0c;最著名的 Golang Web 框架莫过于 Gin [ 1] 框架了&#xff0c;Gin 框架作为 Golang 编程语言官方的推荐框架 [ 2] &…...

centos7 linux VMware虚拟机新添加的网卡,能看到网卡名称,但是看不到网卡的配置文件

问题现象&#xff1a;VMware虚拟机新添加的网卡&#xff0c;能看到网卡&#xff0c;但是看不到网卡的配置文件 解决方案&#xff1a; nmcli connection show nmcli connection add con-name ens36 ifname ens36 type ethernet #创建一个网卡连接配置文件&#xff0c;这里con…...

python的内置方法getitem和len

完整小测试&#xff1a; #python的内置函数&#xff0c;getitemclass Animal():def __init__(self,name):self.name namedef __str__(self):return f"This is {self.name}"class Zoo():def __init__(self,animal_list):self.animal_list animal_listdef __getite…...

深入理解 Git Stash:功能、用法与实战示例

文章目录 深入理解 Git Stash&#xff1a;功能、用法与实战示例一、Git Stash 的核心概念二、Git Stash 的基本用法1. 存储当前修改2. 查看 Stash 列表3. 恢复 Stash4. 恢复并删除 Stash5. 删除 Stash&#xff08;1&#xff09;删除指定 Stash&#xff08;2&#xff09;清空所有…...

SQL 复杂查询和性能优化

一、掌握复杂查询的核心技能 1. ​理解 SQL 执行顺序 SQL 语句的逻辑执行顺序&#xff08;非书写顺序&#xff09;&#xff1a; FROM → JOIN → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY → LIMIT ​关键点&#xff1a;每一步的结果会传递给下一步&a…...

【web应用安全】关于web应用安全的几个主要问题的思考

文章目录 防重放攻击1. **Token机制&#xff08;一次性令牌&#xff09;**2. **时间戳 超时验证**3. **Nonce&#xff08;一次性随机数&#xff09;**4. **请求签名&#xff08;如HMAC&#xff09;**5. **HTTPS 安全Cookie**6. **幂等性设计****综合防御策略建议****注意事项…...

看懂roslunch输出

自编了一个demo 第一步&#xff1a;创建功能包 cd ~/catkin_ws/src catkin_create_pkg param_demo roscpp第二步&#xff1a;写 main.cpp 创建文件&#xff1a;param_demo/src/param_node.cpp #include <ros/ros.h> #include <string>int main(int argc, char*…...

如何查看Unity打包生成的ab文件

文章目录 前言AssetStudioab文件介绍1. 动态加载资源2. 资源分离与模块化3. 平台兼容性4. 资源压缩与加密5. 资源管理与更新6. 减少安装包大小7. 资源加载灵活性8. 资源打包与分发9. 实际应用场景10. 注意事项 总结 前言 问题来源于工作又回归到工作&#xff0c;当发现发布包里…...

从泛读到精读:合合信息文档解析如何让大模型更懂复杂文档

从泛读到精读&#xff1a;合合信息文档解析如何让大模型更懂复杂文档 一、引言&#xff1a;破解文档“理解力”瓶颈二、核心功能&#xff1a;合合信息的“破局”亮点功能亮点1&#xff1a;复杂图表的高精度解析图表解析&#xff1a;为大模型装上精准“标尺”表格数据精准还原 功…...

Python SciPy面试题及参考答案

目录 什么是 SciPy?它与 NumPy 有什么区别? 如何在 Python 中安装 SciPy? 如何导入 SciPy 库? SciPy 中有哪些子模块?简要介绍它们的功能。 如何使用 SciPy 进行数值积分?请举例说明。 SciPy 中提供了哪些求解微分方程的函数? 什么是插值?SciPy 中如何进行插值?…...

21.Excel自动化:如何使用 xlwings 进行编程

一 将Excel用作数据查看器 使用 xlwings 中的 view 函数。 1.导包 import datetime as dt import xlwings as xw import pandas as pd import numpy as np 2.view 函数 创建一个基于伪随机数的DataFrame&#xff0c;它有足够多的行&#xff0c;使得只有首尾几行会被显示。 df …...

【redis】数据类型之Stream

Redis Stream是Redis 5.0版本引入的一种新的数据类型&#xff0c;它提供了一种持久化的、可查询的、可扩展的消息队列服务。 它结合了Redis高性能的特性与持久化能力&#xff0c;支持&#xff1a; 多消费者组模式&#xff08;Consumer Groups&#xff09;消息回溯&#xff08…...