关于php反序列化问题
本帖最后由 Chost 于 2021-1-22 18:37 编辑有三个文件在同一web目录下访问127.0.0.1/web/admin.php
主文件admin.php
<?php
include 'function.php';
if(!is_string($_COOKIE['username'])){
SetCookie("username", serialize('man'), time()+3600);
}
else{
echo "hello";
$str = 'O:4:"test":2:{s:3:"cmd";i:1;s:4:"name";s:4:"daye";}';//此位置可构造反序列化字符串获取function.php文件的$admin
//echo unserialize($_COOKIE['username']);
$te = unserialize($str);
var_dump($te);
}
?>
function.php文件
<?php
function get($cmd){
if($cmd===1){
$admin = 'testtttttt';
echo $admin; //获取
}
}
function __autoload($classname){
include $classname.'.php';
echo 'function';
}
?>
tclass.php文件
<?php
class test{
public $cmd='ls';
function __destruct() {
echo 'xxxxxxx';
system($this->cmd);
}
}
?>
讨论:要构造怎样的反序列化数据才能获取$admin值呢 注册了自动加载,反序列化test就直接getshell了呀 Gii 发表于 2021-1-22 09:22
注册了自动加载,反序列化test就直接getshell了呀
第一个文件的第10行可在这构造反序列过,怎么能调用第二的文件的get方法呢
页:
[1]