ctfshow-web入门-爆破wp
Web21:
进入主页为登录框,随便输入信息用burp抓包,发现Authorization认证使用Base64加密传输,解密发现为刚才输入的信息
右键发送至Intruder进行爆破,使用题目给出的字典进行爆破并添加变量
添加前缀使用户名固定并用Base64加密传输,记得取消勾选url-encode,不然会转义Base64的"="
爆破出结果
Web22:
提示子域名爆破,可以使用Layer或者fofa等来进行子域名信息收集,由于子域名已经失效,所以无法爆破。
Web23:
方法一:使用alberthao师傅的脚本进行爆破匹配字符,该脚本简单的来说就是先设置一个字符数字的字典,然后从字典拼接出一个两位的字符串,使用两位的字符串去匹配题目的规则进行碰撞,最后获得的结果是 3j
#coding: utf-8
#alberthao
import hashlib
dic = '0123456789qazwsxedcrfvtgbyhnujmikolp'
for a in dic:
for b in dic:
t = str(a)+str(b)
md5 = hashlib.md5(t.encode('utf-8')).hexdigest()
#print md5
#print md5[1:2]
#print md5[14:15]
#print md5[17:18]
if md5[1:2] == md5[14:15] and md5[14:15]== md5[17:18]:
if(ord(md5[1:2]))>=48 and ord(md5[1:2])<=57 and (ord(md5[14:15]))>=48 and ord(md5[14:15])<=57:
if (ord(md5[17:18]))>=48 and ord(md5[17:18])<=57 and (ord(md5[31:32]))>=48 and ord(md5[31:32])<=57:
if(int(md5[1:2])+int(md5[14:15])+int(md5[17:18]))/int(md5[1:2])==int(md5[31:32]):
print(t)
方法二:使用burp直接对token进行爆破
如果觉得默认的10线程爆破太慢了可以手动提高并发
从长度上判断422和1202符合判断条件
Web24:
php伪随机数,php使用mt_srand(种子)时是伪随机数,每次使用相同的种子所获得的随机数是一样的,写一个php文件,使用相同的种子获取随机数进行传输。
Web25:
调用mt_srand分发一个flag的MD5前8位的种子,将输入的r与第一次mt_rand()生成的数相减并赋给rand。
当r=0时会输出第一次mt_rand()的值,可以使用工具逆推原mt_srand()函数的种子来获得第二次和第三次mt_rand()生成的数之和。
逆推工具(https://www.openwall.com/php_mt_seed/php_mt_seed-4.0.tar.gz):
解压到本地后直接make编译一个执行文件后./php_mt_seed seed进行逆推
写个php脚本计算mt_rand()的值
<?php
$_seed = '2346706253';
mt_srand($_seed);
echo intval(mt_rand());
echo "\n";
echo(mt_rand() + mt_rand());
?>
传参获得flag
Web26:
抓包看response,flag直接送
Web27:
下载录取名单
发现录取查询可以根据名称身份证查询,对录取名单中缺失的部分进行爆破,选择日期模式,从1990开始,记得修改格式。
成功获取,查询后可重置密码,学号加密码登录后获得flag
Web28:
进来发现目录有问题,直接对目录进行爆破
得到一个response码为200的包,点击查看存在flag