ctfshow爆破

web21

登陆抓包
在这里插入图片描述
发现账号密码被加密,这里先解密
在这里插入图片描述
发现中间用一个冒号隔开了,发到Intruder模块进行爆破
在这里插入图片描述利用题目所给的字典(重命名为.zip,再解压出来),在Payload1后添加:后缀,对Payload1、2进行base64加密
Payload set 1

在这里插入图片描述

Payload set 2
在这里插入图片描述
因为这样跑需要跑太多次了,这里已经知道账号就是admin了,直接对密码进行爆破。
在这里插入图片描述发送到重放模块得到flag

在这里插入图片描述

web22

flag.ctfer.com,根本打不开
vip.ctf.show
在这里插入图片描述

web23

<?php
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__);

}
?>

贴个脚本,假设是三位数

<?php
error_reporting(0);
$string = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
print (strlen($string)."\n");

for ($a = 0; $a < 62; $a++) {
    for ($b = 0; $b < 62; $b++) {
        for ($c = 0; $c < 62; $c++) {
            $flag = $string[$a] . $string[$b] . $string[$c];
            $token = md5($flag);
            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 . "\n";
                }
            }
        }
    }
}

在这里插入图片描述还有一些两位的像62 ZE 3j 都可以,随意传参进去就是了

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

伪随机数,当种子不变时,实际生成的随机数也是不变的,所以我们可以直接找到那个数传进去就是了,得到1155388967

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

web25

<?php
error_reporting(0);
include("flag.php");
if(isset($_GET['r'])){
    $r = $_GET['r'];
    mt_srand(hexdec(substr(md5($flag), 0,8)));
    $rand = intval($r)-intval(mt_rand());
    if((!$rand)){
        if($_COOKIE['token']==(mt_rand()+mt_rand())){
            echo $flag;
        }
    }else{
        echo $rand;
    }
}else{
    highlight_file(__FILE__);
    echo system('cat /proc/version');
} 

总思路,固定种子数的随机数是一定的,利用第一个随机数找到种子数,然后再用种子数找第二第三个随机数,然后分别给r和token赋值,所以第一步,利用随机数找种子,用到php_mt_seed下载后先make再使用命令,不然报错权限不够啥的
在这里插入图片描述
在这里插入图片描述
因为刚开始就告诉了版本号所以找相关的,这几个都试了试,最后一个成功

在这里插入图片描述

web26

burp抓包直接爆破密码
在这里插入图片描述
在Repeater处go一下即可,不过这里如果值全是空的话,查看页面源代码发现function check()

在这里插入图片描述

web27

点击录取名单,下载文件得到
在这里插入图片描述
并且还有个这个
在这里插入图片描述

直接burp就是爆破它的年份

在这里插入图片描述

在这里插入图片描述

进行unicode解码得到学号,直接登录成功获得flag
在这里插入图片描述

web28

where is flag?,看url就是目录,那我们直接brup跑目录,这里还要去掉2.txt
在这里插入图片描述

都设置100直接跑就是了最后跑出

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值