<?php//__wakeup:反序列化恢复对象之前调用该方法//CVE-2016-7124 __wakeup绕过classTest{public$sex;public$name;public$age;publicfunction__construct($name,$age,$sex){echo"__construct被调用!";}publicfunction__wakeup(){echo"__wakeup()被调用";}publicfunction__destruct(){echo"__destruct()被调用...
大致思路 首先是一个类sercet 接受$cmd,绕过正则 ,反序列化。覆盖$file的值,绕过 __wakeup,显示the_next.php的源码 1 <?php2classsercet{3private$file='index.php';45publicfunction __construct($file){6$this->file=$file;7}89function__destruct(){10echoshow_source($this->file,true);11}1213funct...
|*/Route::get('/',function(\Illuminate\Http\Request$request){// return view('welcome');$ser=base64_decode($request->input("ser"));unserialize($ser);return"ok";}); 要绕过的__wakeup() https://github.com/FakerPHP/Faker https://github.com/FakerPHP/Faker/pull/136 https://github.com/...
这里需要把a实例化为ct的对象,用die触发toString,但是wakeup会给a赋值成为字符串,就需要绕过这个wakeup函数。 做这个题的时候环境是没有给出PHP版本,所以试过修改成员变量数、C绕过都没有成功,然后细看了一下abc三个变量,可以利用代码逻辑去绕过,这里先给出利用方法。 $re=new dog(); $re->c=new ct(); 1...