1.php反序列化漏洞-第一关
对输入的flag进行反序列化(unserialize),再调用action的方法,eval任意执行
创建一个对象a,调用action的方法,让其执行命令phpinfo();最后输出a序列化后的内容
2.php反序列化漏洞-第二关
__construct : 在创建对象时候初始化对象。
__destruct : 当对象所在函数调用完毕后执行一般用于对变量赋初值
或者在对象被销毁的时候触发
当我们序列化时使用new函数实例化类的时候就会触发
<?php
作用是将当前文件的代码以语法高亮的形式输出到浏览器。
highlight_file(__FILE__);//include("flag.php");//
文件中包含flag.php文件class mylogin{
var $user;
var $pass;
创建一个对象mylogin
,
引用两个属性user,passfunction __construct($user,$pass){
$this->user=$user;
$this->pass=$pass;
}
//
可以对成员属性进行初始化,成员属性为user,passfunction login(){
if ($this->user=="daydream" and $this->pass=="ok"){
return 1;
//
登录验证,通过正则表达式验证输入的用户名、密码位数、字符是否合法}
}
}
$a=unserialize($_GET['param']);
if($a->login())
{
echo $flag;
}
?>
<br><a href="../level3">点击进入第三关</a>
3.php反序列化漏洞-第三关
与第二关一致,只是更换传参形式为Cookie
4.Java 反序列化漏洞--工具
php反序列化漏洞看代码,java反序列化漏洞需利用工具