web21
题目:爆破是什么,都是基操
那么就打开burp进行抓包,记住要抓登录的包,
抓到后注意最后一行,是一个base64编码,解码
明显这就是我们需要爆破的地方,第一步猜测账户名为admin,那么就只需要爆破密码即可,那么我们就要确定密码是那几个字母
显然密码是后面的部分
那么就开始爆破喽,先将抓到的包送到intruder里,然后将密码那部分添加变量符号
设置playloads第一项不动,第二项上传密码本即题目附带的,第三项选择编码方式,base64
并将最后一项的勾取消掉
配置完成开始爆破
挑选出最特殊一项,即是正确的答案,将下方结果发送至repeater
然后点击send得到flag
web22
略
web23
题目:还爆破?这么多代码,告辞!
开始做题
<?php
/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date: 2020-09-03 11:43:51
# @Last Modified by: h1xa
# @Last Modified time: 2020-09-03 11:56:11
# @email: h1xa@ctfer.com
# @link: https://ctfer.com
*/
error_reporting(0);
include('flag.php');
if(isset($_GET['token'])){
$token = md5($_GET['token']);
if(substr($token, 1,1)===substr($token, 14,1) && substr($token, 14,1) ===substr($token, 17,1)){
if((intval(substr($token, 1,1))+intval(substr($token, 14,1))+substr($token, 17,1))/substr($token, 1,1)===intval(substr($token, 31,1))){
echo $flag;
}
}
}else{
highlight_file(__FILE__);
}
?>
来看代码,include了flag.php文件,所以这个代码就是关于得到flag的,继续看,连续三个if后会输出flag,显然就是找出一个变量token使其符合后面两个if条件,那么就直接写代码进行测试
import hashlib
a='0123456789qwertyuiopasdfghjklzxcvbnm'
for i in a:
for j in a:
t = (str(i)+str(j)).encode('utf-8')
md5 = hashlib.md5(t).hexdigest()
if md5[1:2] == md5[14:15] == md5[17:18]:
if(int(md5[1:2])+int(md5[14:15])+int(md5[17:18]))/int(md5[1:2]) == int(md5[31:32]):
print(t)
得到结果3j,然后直接url/?token=3j即可得到flag
web24
题目:无
看代码
<?php
error_reporting(0);
include("flag.php");
if(isset($_GET['r'])){
$r = $_GET['r'];
mt_srand(372619038);
if(intval($r)===intval(mt_rand())){
echo $flag;
}
}else{
highlight_file(__FILE__);
echo system('cat /proc/version');
}
很明显啊,找出一个整型变量r使其与mt_srand(372619038)得出数字相等,那就简单了,为什么?因为这是PHP函数啊,写个php文件运行一下不就知道是什么了
<?php
mt_srand(372619038);
echo(mt_rand());
?>
然后url/?r=刚刚求出的数字,即可得到flag
web25
web26
题目:可以爆破
哇哦,终于可以爆破了,快快快,进入,同意协议直接进入界面
嗯哼,奇奇怪怪的,尝试把东西输进去
告诉我们不行,咋办呢,那就爆破喽,爆破啥呢,密码呗
启动burp,没有说明特殊要求直接爆破就行了,得出结果
就能得到flag
web27
web28
这玩意真坑,看提示吧,总共两个提示:1.通过暴力破解目录/0-100/0-100/看返回数据包2.爆破的时候去掉2.txt仅仅爆破目录即可
乍一看挺懵逼的,什么意思啊这是,但是细微观察一下应该是和url相关,仔细看url:
http://a0c2569a-e648-437f-bfe7-fcc118c9e2f6.challenge.ctf.show/0/1/2.txt
显然就是这里条件符合开始爆破
记住哟,我们这里总共有两个地方要爆破所以攻击形式要选择混合型
记住是两个payload,然后爆破找出最特殊的一项即可