爆破

web21

抓包发现为base64加密 解密后发现格式为CTFSHOW-爆破 - 图1

设置bp

CTFSHOW-爆破 - 图2

CTFSHOW-爆破 - 图3

CTFSHOW-爆破 - 图4

CTFSHOW-爆破 - 图5

开始爆破

CTFSHOW-爆破 - 图6

web22

爆破子域名

http://flag.ctfer.com/index.php

web23

  1. include('flag.php');
  2. if(isset($_GET['token'])){
  3. $token = md5($_GET['token']);
  4. if(substr($token, 1,1)===substr($token, 14,1) && substr($token, 14,1) ===substr($token, 17,1)){
  5. if((intval(substr($token, 1,1))+intval(substr($token, 14,1))+substr($token, 17,1))/substr($token, 1,1)===intval(substr($token, 31,1))){
  6. echo $flag;
  7. }
  8. }
  9. }else{
  10. highlight_file(__FILE__);
  11. }
  12. ?>

脚本爆破一下

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

CTFSHOW-爆破 - 图7

输入3j即可

web24

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

?>

mt_srand伪随机数 种子被确定 下一次mt_rand可以被算出来

mt_srand(372619038);
mt_srand(372619038);
echo mt_rand();

CTFSHOW-爆破 - 图8

传入获得flag

web25

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');
}
mt_srand(seed)  //给定一个种子
//通过mt_rand()线性来生成随机数
//也就是当确定了seed后 就可以确定mt_rand()+mt_rand()的值
//我们有了mt_rand()生成的随机数同样可以爆破seed

利用工具进行爆破

gcc php_mt_seed.c -o php_mt_seed 预编译

CTFSHOW-爆破 - 图9

传入?r=0 得到随机数

CTFSHOW-爆破 - 图10

pass

web26

CTFSHOW-爆破 - 图11

设置为空可以得出flag

或者爆破密码

CTFSHOW-爆破 - 图12

web27

CTFSHOW-爆破 - 图13

下载名单 发现身份证号其中一部分模糊 爆破

CTFSHOW-爆破 - 图14

设置字典CTFSHOW-爆破 - 图15

CTFSHOW-爆破 - 图16

成功爆破

CTFSHOW-爆破 - 图17

登陆成功CTFSHOW-爆破 - 图18

web28

http://30423563-9952-4a49-b739-70a65d3cd6e4.challenge.ctf.show:8080/0/1/2.txt

发现url独特之处 爆破/0/1/

选择Cluster bomb模式 采用数值 爆破

CTFSHOW-爆破 - 图19

发现flagCTFSHOW-爆破 - 图20