码迷,mamicode.com
首页 > 其他好文 > 详细

[HCTF 2018]WarmUp

时间:2020-11-26 14:17:54      阅读:3      评论:0      收藏:0      [点我收藏+]

标签:war   lse   color   div   turn   als   字符串   取字符串   匹配   

<?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 . ‘?‘, ‘?‘)
        );
        //第二次检测传进来的值是否匹配白名单列表$whitelist 如果有则执行真
        if (in_array($_page, $whitelist)) {
            return true;
        }
        //第二次过滤问号的函数(如果$page的值有?则从?之前提取字符串)
//        url编码
        $_page = urldecode($page);
        $_page = mb_substr(
            $_page,
            0,
            mb_strpos($_page . ‘?‘, ‘?‘)
        );
        //第三次检测传进来的值是否匹配白名单列表$whitelist 如果有则执行真
        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\" />";
}


?>

 

//解题思路:
//先运行一下代码发现直接返回 img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />
//找到if条件
//三个条件同时成立才能执行
//empty:检测是否为空,非空非零时是假,空时为真,故!empty则是要求file存在
//is_siring:检测是否为字符串
//emmm::checkFile :将值传入到emmm类的checkFile函数
//isset()判断变量是否声明
//is_string()判断变量是否为字符串
//in_array:函数搜索数组中是否存在指定的值。
//mb_substr : 获取部分字符串

//source.php%253F/../../../../ffffllllaaaagggg
//两次url编码绕过

 

[HCTF 2018]WarmUp

标签:war   lse   color   div   turn   als   字符串   取字符串   匹配   

原文地址:https://www.cnblogs.com/xiaodiaosi/p/11941587.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!