铵滔 发表于 2025-6-7 16:14:17

ctfshow-web入门-爆破(web21-web28)

web21

打开后要求登录

附件是一个密码字典

使用bp抓包,将抓到的东西进行base64解码

发现是admin:密码的键值对

添加payload,payload类型为自定义迭代器,位置1为admin:

位置2为导入的字典

添加base64编码和取消url编码

然后开始攻击,发现长度和其他不同的包,查看响应,发现flag

web22

这道题现在好像不能做了?
https://img2023.cnblogs.com/blog/3625067/202503/3625067-20250329220259065-623438892.png
web23



[*]md5算出的值是32位的16进制数
[*]substr($token, 1, 1)是将token的字符串的第二个字符开始,取一个字符
php > $token = 'abcdefg';
php > echo substr($token,1,1);
b

[*]第一个判断条件是要求md5字符串第2个字符,第15个字符,第18个字符相等
[*]第二个判断条件是第2个字符,第15个字符,第18个字符转换为整数后相加的和与第2个字符的整数相除的结果(3)与最后一个字符的整数相等
综合两个条件:第2个字符,第15个字符,第18个字符相等,最后一个字符为3
使用如下脚本爆破:
import hashlib

for num in range(1,10000):
    md5_value = hashlib.md5(str(num).encode('utf-8')).hexdigest()
    if md5_value[-1] == '3':
      if md5_value == md5_value and md5_value == md5_value:
            print(num)得到如下结果:
$ python 1.py
422
1202尝试传入url?token=422,得到flag

web24

<?php

/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-03 13:26:39
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-03 13:53:31
# @email: h1xa@ctfer.com
# @link: https://ctfer.com

*/

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

?> Linux version 5.4.0-163-generic (buildd@lcy02-amd64-067) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2)) #180-Ubuntu SMP Tue Sep 5 13:21:23 UTC 2023 Linux version 5.4.0-163-generic (buildd@lcy02-amd64-067) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2)) #180-Ubuntu SMP Tue Sep 5 13:21:23 UTC 2023

[*]mt_srand(372619038);

[*]这行代码使用 mt_srand 函数设置Mersenne Twister随机数生成器的种子为 372619038。设置种子后,每次调用 mt_rand 都会生成相同的随机数序列。

[*]intval(mt_rand())

[*]将生成的随机数转换为整数。

使用本地php生成随机数
php > mt_srand(372619038);
php > echo mt_rand();
1155388967传入url?r=1155388967,得到flag

web25

页: [1]
查看完整版本: ctfshow-web入门-爆破(web21-web28)