进来就看见有大佬被挂在黑页
F12查看源码看到在下面有个黑化了的标签藏得挺深,
./Archive_room.php
。然后网页中间有个
不知道的还以为在FBI warning.点进去看看,注意到直接来到了end.php,但是在上一页的源码这个secret的herf是跳转至action.php啊。应该是action.php302跳转到了end.php吧,开burp看看
事实证明确实有action.php
repeater发包后在响应包看到有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>
重点函数介绍:
- strstr()查找字符的首次出现,返回从该字符到整个字符串结束的部分
- stristr()和strstr()一样,只是不区分大小写
- 格外补充:strpos()查找字符(区别大小写),返回匹配成功的位置
这段代码的意思就是if判断有没有这四个字符串,没有就文件包含,有就拜拜。
?file=flag.php
看看
作者可真坏啊,伪协议读一下。payload:
secr3t?file=php://filter/convert.base64-encode/resource=flag.php
,base64解码得到flag:flag{55e2c032-73ad-449a-8670-d52b9e48904c}
如果flag没有在网站根目录下,那这道题就有点难了,我想应该要向日志文件里写木马然后再包含日志文件。估计是buu开环境折磨人才不这么出