<?php

/*
--- HelloCTF - 反序列化靶场 关卡 6 : 序列化规则_权限修饰 --- 

HINT:各有千秋~特别注意的权限修饰符x

# -*- 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 protectedKEY{
    protected 
$protected_key;

    function 
get_key(){
        return 
$this->protected_key;
    }
}

class 
privateKEY{
    private 
$private_key;

    function 
get_key(){
        return 
$this->private_key;
    }

}

See Carfully~
protected's serialize: O%3A12%3A%22protectedKEY%22%3A1%3A%7Bs%3A16%3A%22%00%2A%00protected_key%22%3BN%3B%7D
private's serialize: O%3A10%3A%22privateKEY%22%3A1%3A%7Bs%3A23%3A%22%00privateKEY%00private_key%22%3BN%3B%7D
<?php

$protected_key 
unserialize($_POST['protected_key']);
$private_key unserialize($_POST['private_key']);

if(isset(
$protected_key)&&isset($private_key)){
    if(
$protected_key->get_key() == "protected_key" && $private_key->get_key() == "private_key"){
        echo 
$flag;
    } else {
        echo 
"We Call it %00_Contr0l_Characters_NULL!";
    }
} else {
    
highlight_file(__FILE__);
}