[青少年CTF]Web—Easy CheckMe1-8 by 周末

本文解析了CheckMe1-8青少年CTF训练平台的挑战题,涉及代码审计、文件包含、弱类型比较等安全技术,并提供了详细的解决步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

青少年CTF训练平台 CheckMe1-8

个人博客:https://www.st1ck4r.top/

CheckMe01

考点:php代码审计

image-20221203020514971

给了一个输入框,先随便输点东西进去。

image-20221203020557359

直接就给出了源码,分析该源码。

<title>CheckMe-01</title>
<?php
print("<h1>欢迎来到CheckMe-01,快来寻找你的Flag并提交吧。</h1>");
?>
<form action="index.php" method="POST">
  your key: <input type="text" name="key" />
  <input type="submit" value="Submit" />
</form>
<?php
if(!empty($_POST['key'])){		//判断post参数key是否存在
    $keys = $_POST['key'];		//赋值
    show_source("index.php");
    $keys = base64_decode(urldecode($keys));//将keys值url解码然后base64解码
    if(strlen($keys)==6){	//判断长度是否为6
        if($keys=="qsnctf"){	//判断值是否等于qsnctf
            print("<p>You win!</p>");
            include("flag.php");
            print($flag);
        }
    }
    else{
        print("末心:大漏特漏!此乃九年义务教育漏网之鱼。");
    }
}
?>

现在情况很明了了,我们需要传入字符串"qsnctf"的base64加密字符串。

利用在线网站进行加密。

image-20221203021425948

传入参数。

image-20221203021527680

Tips:

​ 使用hackbar插件要方便一点哦。

image-20221203021721718

CheckMe02

考点:文件包含

image-20221203022029416

只给了简单的一段,看到include函数,自然而然地想到文件包含。

先测试一下,可以包含。

image-20221203022507727

查看根目录下的flag。

image-20221203022754564

CheckMe03

考点:文件包含

依旧是熟悉的文件包含,但是相比上一题应该增加了不许使用伪协议的限制(虽然跟没加一样)。

image-20221203023456590

依旧是先测试。

image-20221203023648125

成功回显,接着改成根目录下的flag。

image-20221203023817913

CheckMe04

考点:MD5弱类型比较

image-20221203025021698

比较两个传入参数的md5值是否相同,两个等于号代表弱比较。

image-20221203025237265

PHP:
ctype_alpha()是一个检测函数,用来检测所给参数是不是字母的函数。
is_numeric() 函数用于检测变量是否为数字或数字字符串。

无法通过数组绕过,使用科学计数法类特性进行弱类型绕过。

a=QLTHNDT
b=240610708

image-20221203031100536

CheckMe05

考点:MD5强类型比较

image-20221203160606618

这次换成了三个等号,意为强类型比较,但是没有对传入数据进行类型判断,所以我们使用数组绕过即可。

a[]=1&b[]=11

image-20221203160855038

CheckMe06

考点:密码爆破

image-20221203162914944

打开网页是一个登陆界面,在题目下方还给了一个字典。

image-20221203163016015

使用Burp抓包,猜测用户名为admin,利用字典爆破密码。

image-20221203163128152

CheckMe07

考点:万能密码

和6一样的界面。

image-20221203163529866

随便输入账号和密码,这次弹出了账号或密码错误的提示。

image-20221203163603105

使用万能密码测试。

image-20221203163633593

弹出flag。

image-20221203163651438

CheckMe08

考点:sql注入

依旧是那个登录页面,先抓个包重发一下。

image-20221203164446087

给出了登陆失败的弹窗,尝试万能密码和密码爆破无果后,果断掏出神器sqlmap.

由于是post请求,所以我们需要把请求包复制并保存到一个txt文档里。

image-20221203164738901

使用命令python sqlmap.py -r 1.txt --dbs -batch开始爆破数据库。

image-20221203185014720

接着查看sql库里的表:python sqlmap.py -r 1.txt -D sql --tables --batch

image-20221203185425786

查看字段:python sqlmap.py -r 1.txt -D sql -T user --columns --batch

image-20221203191737850

dump内容:python sqlmap.py -r 1.txt -D sql -T user -C password --dump --batch

image-20221203194933286

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值