标签:turn this ret echo load 方法 serialize hint 怎么
就如这道题在最开始面板上说的一样,你真的了解反序列化了吗?
这道题就是在看你是不是真的了解了魔术方法怎么触发,起到什么作用?
先上源码。
<?php
show_source(__FILE__);
class CDUTSEC1{
public $file;
public $function;
function __construct($file, $function)
{
$this->file = $file;
$this->function = $function;
}
function __wakeup() // Hint:听说你们喜欢绕__wakeup,但是我可听说官方在php7.0.10之后修复了这个bug
{
$this->file = __FILE__;
$this->function = ‘phpversion‘;
}
function __invoke()
{
return file_get_contents($this->file);
}
function __toString()
{
return file_get_contents($this->file);
}
function __get($function)
{
return $this->function;
}
function __call($a, $b){
return $this->function;
}
}
class CDUTSEC2{
public $function = ‘phpversion‘;
function __destruct()
{
echo ($this->function)(); //
}
}
@unserialize($_GET[‘payload‘]);
代码审计一下。
+
标签:turn this ret echo load 方法 serialize hint 怎么
原文地址:https://www.cnblogs.com/Riv3r1and/p/13773904.html