Bugku-web41

images
该题目涉及到了序列化;Base64解码;cgi;ssrf;php中的file协议;

代码审计,我只知道涉及到了序列化,还有我提交的方法是POST的,其他的我都不是很懂了,所以看了别人的wp;;

https://blog.csdn.net/qq_53460654/article/details/116329685

<?php
// php版本:5.4.44
header("Content-type: text/html; charset=utf-8");
highlight_file(__FILE__);
class evil{
    public $hint;
    public function __construct($hint){
        $this->hint = $hint;
    }
    public function __destruct(){
    if($this->hint==="hint.php")
            @$this->hint = base64_encode(file_get_contents($this->hint)); 
        var_dump($this->hint);
    }
    function __wakeup(
        if ($this->hint != "╭(●`∀´●)╯") { 
            //There's a hint in ./hint.php
            $this->hint = "╰(●’◡’●)╮"
        } 
    }
}
class User
{
    public $username;
    public $password;
    public function __construct($username$password){
        $this->username = $username;
        $this->password = $password;
    }
}
function write($data){
    global $tmp;
    $data str_replace(chr(0).'*'.chr(0), '\0\0\0'$data);
    $tmp $data;
}
function read(){
    global $tmp;
    $data $tmp;
    $r str_replace('\0\0\0'chr(0).'*'.chr(0), $data);
    return $r;
}
$tmp "test";
$username $_POST['username'];
$password $_POST['password'];
$a serialize(new User($username$password));
if(preg_match('/flag/is',$a))
    die("NoNoNo!");
unserialize(read(write($a)));

images

posted @   KAKSKY  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示