首页 > 其他分享 >[HCTF 2018]WarmUp 1

[HCTF 2018]WarmUp 1

时间:2024-10-21 10:45:32浏览次数:15  
标签:WarmUp mb whitelist HCTF flag 2018 file php page

[HCTF 2018]WarmUp 1

资源收集,查看源代码之后,看到如下代码:

<?php
    highlight_file(__FILE__);
    class emmm
    {
        public static function checkFile(&$page)
        {
            $whitelist = ["source"=>"source.php","hint"=>"hint.php"];
            if (! isset($page) || !is_string($page)) {
                echo "you can't see it";
                return false;
            }

            if (in_array($page, $whitelist)) {
                return true;
            }

            $_page = mb_substr(
                $page,
                0,
                mb_strpos($page . '?', '?')
            );
            if (in_array($_page, $whitelist)) {
                return true;
            }

            $_page = urldecode($page);
            $_page = mb_substr(
                $_page,
                0,
                mb_strpos($_page . '?', '?')
            );
            if (in_array($_page, $whitelist)) {
                return true;
            }
            echo "you can't see it";
            return false;
        }
    }

    if (! empty($_REQUEST['file'])
        && is_string($_REQUEST['file'])
        && emmm::checkFile($_REQUEST['file'])
    ) {
        include $_REQUEST['file'];
        exit;
    } else {
        echo "<br><img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />";
    }  
?>

解析代码:

  • &$page:引用传递,为了防止内部修改变量而改变外部变量。
  • in_array(变量1,变量2):判断变量1是否存在变量2中。
  • mb_substr():取指定长度的子字符串,取左不取右。
  • mb_strpos():查找一个字符串中某个字符或子字符串第一次出现的位置,没有出现的自动在后面补一个。
  • urldecode():解码的 URL 编码字符串。

解题思路:

  • 传入的flie的内容必须在 $whitelist 变量里面。

  • ?file=( $whitelist )------------->这样输入的内容会被截取一整段.如果希望不被截取,可以在后面加一个?

  • 最后查询运行到 include $_REQUEST[‘file’];从而得到flag

详细步骤:

输入?file=source.php没有什么用,换成file=hint.php,从而得到flag not here, and flag in ffffllllaaaagggg,

在这里插入图片描述

根据flag not here, and flag in ,在网站上面查找ffffllllaaaagggg文件夹,发现被过滤了,所以要在?file=hint.php后面再加一个?---->?file=hint.php?

在这里插入图片描述

得到flag
在这里插入图片描述

标签:WarmUp,mb,whitelist,HCTF,flag,2018,file,php,page
From: https://blog.csdn.net/qq_59103228/article/details/143106549

相关文章

  • [JSOI2018] 潜入行动 题解
    T6[JSOI2018]潜入行动很套路、很裸的一道树形DP。看了状态就会推方程的那种。设\(f_{u,i,0/1,0/1}\)表示以\(u\)为根的子树中有\(i\)个监听器、\(u\)有没有监听器、\(u\)有没有被监听的方案数。显然要枚举子节点\(v\)、\(u\)的监听器数量\(i\)、\(v\)的监听器数......
  • 2018-8-10-win10-uwp-Window.Current.Dispatcher中Current为null
    titleauthordateCreateTimecategorieswin10uwpWindow.Current.Dispatcher中Current为nulllindexi2018-08-1019:16:53+08002018-2-1317:23:3+0800Win10UWP本文说的是进行网络中异步界面出现的错误,可能带有一定的主观性和局限性,说的东西可能不对或者不符合每个人的预期。如果......
  • 2018-8-10-win10-uwp-商业游戏-1.2.1
    titleauthordateCreateTimecategorieswin10uwp商业游戏1.2.1lindexi2018-08-1019:16:50+08002018-2-1317:23:3+0800Win10UWP上一个游戏已经告诉大家如何写多个游戏,现在继续写这个无聊的游戏。希望大家在看这篇文章之前先看win10uwp商业游戏,在这个文章告诉了大家如何创建......