web21

web21.1

爆破题,抓包发现传输的账号密码是经过base64加密后的

web21.2

解出来是这样形式的:admin:admin

下载题目给的压缩包,解压出字典,写脚本然后用burpsuit跑就行了

web22

web22.1

说是子域名爆破,但是我觉得就是flag.ctfer.com,你觉得呢…

web23

web23.1

在各位大佬的指导下搞出来的代码

<?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);
            } 
        } 
    }
} 
?> 

web24

web24.1

PHP伪随机数

<?php
mt_srand(372619038);
echo(mt_rand());
?>

用PHP版本7.2.10运行,将得到的数字传入即可

web25

r=1的时候rand=-1833303828

mt_rand()=r-rand=1833303829

然后kali运行脚本./php_mt_seed 1833303829

web25.2

我用的是第一个php7.1.0+版本的种子然后

<?php
mt_srand(399933415);
echo mt_rand()."\n";
echo mt_rand()+mt_rand();

返回1833303829 1800730406

web25.3

设置r= 和token=

web26

web26.1

爆破pass

web27

web27.1

题目是个正方的教务管理系统,有录取名单和学生学籍信息查询系统两个功能

web27.2

录取名单下载下来是一份表格,学生学籍信息查询系统要求输入姓名和身份证号码

web27.3这里就用表格里第一个人的信息

高先伊 身份证号码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

(还有师傅说去在线生成身份证的网站上输入姓名能直接找到,这比我还狠啊…)

web28

web28.1

访问之后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/就行