<?php

/*
--- HelloCTF - 反序列化靶场 关卡 5 : 序列化规则 --- 

HINT:各有千秋~

# -*- coding: utf-8 -*-
# @Author: 探姬
# @Date:   2024-07-01 20:30
# @Repo:   github.com/ProbiusOfficial/PHPSerialize-labs
# @email:  admin@hello-ctf.com
# @link:   hello-ctf.com

*/

class a_class{
    public 
$a_value "HelloCTF";
}
$a_object = new a_class();
$a_array = array(a=>"Hello",b=>"CTF");
$a_string "HelloCTF";
$a_number 678470;
$a_boolean true;
$a_null null;

See How to serialize:
a_object: O:7:"a_class":1:{s:7:"a_value";s:8:"HelloCTF";}
a_array: a:2:{s:1:"a";s:5:"Hello";s:1:"b";s:3:"CTF";}
a_string: s:8:"HelloCTF";
a_number: i:678470;
a_boolean: b:1;
a_null: N;
Now your turn!
<?php

$your_object 
unserialize($_POST['o']);
$your_array unserialize($_POST['a']);
$your_string unserialize($_POST['s']);
$your_number unserialize($_POST['i']);
$your_boolean unserialize($_POST['b']);
$your_NULL unserialize($_POST['n']);

if(
    
$your_boolean && 
    
$your_NULL == null &&
    
$your_string == "IWANT" &&
    
$your_number == &&
    
$your_object->a_value == "FLAG" &&
    
$your_array['a'] == "Plz" && $your_array['b'] == "Give_M3"
){
    echo 
$flag;
}
else{
    echo 
"You really know how to serialize?";
}


You really know how to serialize?