BUUCTF--Web篇详细wp

BUUCTF--Web篇详细wp

    • [极客大挑战 2019]EasySQL
    • [极客大挑战 2019]Havefun
    • [HCTF 2018]WarmUp
    • [ACTF2020 新生赛]Include

CTF平台:https://buuoj.cn/

[极客大挑战 2019]EasySQL

使用万能密码登入即可。

1'or'1'='1  #万能密码(注意是英文小写)  

BUUCTF--Web篇详细wp_第1张图片
BUUCTF--Web篇详细wp_第2张图片

flag{c8aeab4b-a566-4d7e-a039-cf6393c61d76}

[极客大挑战 2019]Havefun

F12查看源代码 发现是PHP代码审计(小猫挺可爱呢~)

BUUCTF--Web篇详细wp_第3张图片
BUUCTF--Web篇详细wp_第4张图片

<!--
        $cat=$_GET['cat'];
        echo $cat;
        if($cat=='dog'){
            echo 'Syc{cat_cat_cat_cat}';
        }
        -->

传了一个变量 然后是GET请求 如果cat=dog 就会输出 flag 构造Payload:/?cat=dog

BUUCTF--Web篇详细wp_第5张图片

flag{86e415ca-8d55-4868-afb3-ec58d239dbb7}

[HCTF 2018]WarmUp

打开网页看到滑稽图 直接F12 然后访问这个敏感信息 source.php 直接看源码

BUUCTF--Web篇详细wp_第6张图片
BUUCTF--Web篇详细wp_第7张图片

 <?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 "
"
; } ?>

BUUCTF--Web篇详细wp_第8张图片
在这里插入图片描述
BUUCTF--Web篇详细wp_第9张图片

flag{313235c5-75b2-4e8a-b225-8e7413865bc7}

[ACTF2020 新生赛]Include

在这里插入图片描述
在这里插入图片描述
这里我们看到了?file=flag.php我们猜测是文件包含漏洞 我们可以通过伪协议去读取想要的信息

文件包含分为本地文件包含 和 远程文件包含(php.ini可以进行配置)

allow_url_fopen=On/Off 本地文件包含(LFI)(开和关都可包含本地文件)
allow_url_include=On/Off 远程文件包含(RFI)

常见的文件包含 函数:PHP:include()、include_once()、require()、require_once()

  • Require: 找不到被包含的文件时会产生致命错误(E_COMPILE_ERROR),并停止脚本;
  • Include:找不到被包含的文件时只会产生一个(E_warinng),脚本将继续执行;
  • Require_once:与 include 类似会产生警告,区别是如果文件代码已经被包含,则不会再次被包含;

用法:?file=../../../../../../../../../../../../../../../../etc/passwd

PHP伪协议:

你可能感兴趣的:(CTF,CTF,BUUCTF,Web,php,解析wp)