ctfshow-web入门(21-28)

web21

爆破后台:
在这里插入图片描述
抓包后发现base64,解码后:
在这里插入图片描述
设置payload:
在这里插入图片描述
自定义迭代器
在这里插入图片描述
第二个位置设置:,第三个位置导入密码字典
先进行base64编码,去掉转义。
在这里插入图片描述
在这里插入图片描述

web22

爆破子域名:http://flag.ctfer.com/index.php(不过现在好像挂了)

web23

源码:

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

}

通过分析不难知道,爆破md5加密后的第1、14、17位相等的字符即可。

import hashlib
dic = '0123456789qazwsxedcrfvtgbyhnujmikolp'
md5 = hashlib.md5(dic.encode()).hexdigest()
for a in dic:
    for b in dic:
        t = str(a)+str(b)
        md5 = hashlib.md5(t.encode()).hexdigest()
        if md5[1:2] == md5[14:15] and md5[14:15]== md5[17:18]:
            print(t)
            print(md5)
            print(md5[1:2])
            print(md5[14:15])
            print(md5[17:18])

传入token=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');
}

根据seed生成随机数传入即可
在这里插入图片描述

web25

源码:

<?php

/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-03 13:56:57
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-03 15:47:33
# @email: [email protected]
# @link: https://ctfer.com

*/


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');
}
Linux version 5.4.0-71-generic (buildd@lcy01-amd64-020) (gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)) #79-Ubuntu SMP Wed Mar 24 10:56:57 UTC 2021 Linux version 5.4.0-71-generic (buildd@lcy01-amd64-020) (gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)) #79-Ubuntu SMP Wed Mar 24 10:56:57 UTC 2021

分析代码发现r=0时输出一个随机数1093439231,然后查找资料有前辈写的脚本可以根据随机数暴力猜出seed。
php_mt_seed 地址:下载地址
下载后解压跑数据:
在这里插入图片描述
最终试出seed为:853100086,然后本地生成随机数,求出token
在这里插入图片描述
在这里插入图片描述

web26

看题是要爆破密码,抓包爆破
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

web27

先是爆破管理员密码,但是没爆出来;继续分析,看到录取名单,发现可以下载,有身份证和姓名,登录界面又有可以查询学籍的界面,所以想到爆破身份证获取信息。
在这里插入图片描述
在这里插入图片描述

这里爆破第二位同学嵇开梦
在这里插入图片描述
设置payload
在这里插入图片描述
爆破成功,Unicode解码
在这里插入图片描述
恭喜您,您已被我校录取,你的学号为10167653 初始密码为身份证号码
登录后:
在这里插入图片描述

web28

爆破目录
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44033675/article/details/117431656