爆破题,抓包发现传输的账号密码是经过base64加密后的
解出来是这样形式的:admin:admin
下载题目给的压缩包,解压出字典,写脚本然后用burpsuit跑就行了
说是子域名爆破,但是我觉得就是flag.ctfer.com,你觉得呢…
在各位大佬的指导下搞出来的代码
<?php
error_reporting(0);
$a="asdfghjklqwertyuiopzxcvbnm1234567890";
for($i=0;$i<36;$i++){
for($j=0;$j<36;$j++){
$token=$a[$i].$a[$j];
$token = md5($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 $a[$i].$a[$j];
exit(0);
}
}
}
}
?>
PHP伪随机数
<?php
mt_srand(372619038);
echo(mt_rand());
?>
用PHP版本7.2.10运行,将得到的数字传入即可
r=1的时候rand=-1833303828
mt_rand()=r-rand=1833303829
然后kali运行脚本./php_mt_seed 1833303829
我用的是第一个php7.1.0+版本的种子然后
<?php
mt_srand(399933415);
echo mt_rand()."\n";
echo mt_rand()+mt_rand();
返回1833303829 1800730406
设置r= 和token=
爆破pass
题目是个正方的教务管理系统,有录取名单和学生学籍信息查询系统两个功能
录取名单下载下来是一份表格,学生学籍信息查询系统要求输入姓名和身份证号码
这里就用表格里第一个人的信息
高先伊 身份证号码621022****5237
中年的出生年月日居然不给要自己爆破,这里可以通过检验身份证号码是否合理,筛选符合条件的身份证,可惜我的代码写的太烂,写出来的我自己都不敢看,这里就不贴了,放一个不用检验身份证号码合理性的代码吧(希望服务器没事……)
for year in range(1990,1993):
for month in range(1,13):
for day in range(1,32):
card = "621022" + str(year) + str("%02d"%(month)) + str("%02d"%(day)) + "5237"
print(card)
然后拿着姓名+身份证去学籍信息查询系统爆破,得到正确的身份证号码,然后会弹窗提示学号和默认密码(身份证号)
登录得到flag
(还有师傅说去在线生成身份证的网站上输入姓名能直接找到,这比我还狠啊…)
访问之后url是这样的/0/1/2.txt,然后手动尝试访问/0/1.txt之后url被重定向到/0/0/1/0/1/0/1/0/1/0/1/0/1/0/1/0/1/0/1/0/1/0/1/0/1/0/1/0/1/0/1/0/1/0/1/0/1/0/1/2.txt
刚开始我想的是爆破0和1的各种组合目录,最后啥也爆破不出来,看师傅们的wp才知道是爆破/0-100/0-100/
爆破/0-100/0-100/就行