青少年CTF训练平台 CheckMe1-8
个人博客:https://www.st1ck4r.top/
CheckMe01
考点:php代码审计
给了一个输入框,先随便输点东西进去。
直接就给出了源码,分析该源码。
<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加密字符串。
利用在线网站进行加密。
传入参数。
Tips:
使用hackbar插件要方便一点哦。
CheckMe02
考点:文件包含
只给了简单的一段,看到include函数,自然而然地想到文件包含。
先测试一下,可以包含。
查看根目录下的flag。
CheckMe03
考点:文件包含
依旧是熟悉的文件包含,但是相比上一题应该增加了不许使用伪协议的限制(虽然跟没加一样)。
依旧是先测试。
成功回显,接着改成根目录下的flag。
CheckMe04
考点:MD5弱类型比较
比较两个传入参数的md5值是否相同,两个等于号代表弱比较。
PHP:
ctype_alpha()是一个检测函数,用来检测所给参数是不是字母的函数。
is_numeric() 函数用于检测变量是否为数字或数字字符串。
无法通过数组绕过,使用科学计数法类特性进行弱类型绕过。
a=QLTHNDT
b=240610708
CheckMe05
考点:MD5强类型比较
这次换成了三个等号,意为强类型比较,但是没有对传入数据进行类型判断,所以我们使用数组绕过即可。
a[]=1&b[]=11
CheckMe06
考点:密码爆破
打开网页是一个登陆界面,在题目下方还给了一个字典。
使用Burp抓包,猜测用户名为admin,利用字典爆破密码。
CheckMe07
考点:万能密码
和6一样的界面。
随便输入账号和密码,这次弹出了账号或密码错误的提示。
使用万能密码测试。
弹出flag。
CheckMe08
考点:sql注入
依旧是那个登录页面,先抓个包重发一下。
给出了登陆失败的弹窗,尝试万能密码和密码爆破无果后,果断掏出神器sqlmap.
由于是post请求,所以我们需要把请求包复制并保存到一个txt文档里。
使用命令python sqlmap.py -r 1.txt --dbs -batch
开始爆破数据库。
接着查看sql库里的表:python sqlmap.py -r 1.txt -D sql --tables --batch
。
查看字段:python sqlmap.py -r 1.txt -D sql -T user --columns --batch
。
dump内容:python sqlmap.py -r 1.txt -D sql -T user -C password --dump --batch
。文章来源:https://www.toymoban.com/news/detail-464467.html
文章来源地址https://www.toymoban.com/news/detail-464467.html
到了这里,关于[青少年CTF]Web—Easy CheckMe1-8 by 周末的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!