找回密码
 立即注册
首页 业界区 科技 ctfshow-web入门-爆破(web21-web28)

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

铵滔 2025-6-7 16:14:17
web21

打开后要求登录
1.png

附件是一个密码字典
2.png

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

发现是admin:密码的键值对
4.png

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

位置2为导入的字典
6.png

添加base64编码和取消url编码
7.png

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

web22

这道题现在好像不能做了?

web23
  1. [/code]
  2. [list]
  3. [*]md5算出的值是32位的16进制数
  4. [*]substr($token, 1, 1)是将token的字符串的第二个字符开始,取一个字符
  5. [/list][code]php > $token = 'abcdefg';
  6. php > echo substr($token,1,1);
  7. b
复制代码

  • 第一个判断条件是要求md5字符串第2个字符,第15个字符,第18个字符相等
  • 第二个判断条件是第2个字符,第15个字符,第18个字符转换为整数后相加的和与第2个字符的整数相除的结果(3)与最后一个字符的整数相等
综合两个条件:第2个字符,第15个字符,第18个字符相等,最后一个字符为3
使用如下脚本爆破:
  1. import hashlib
  2. for num in range(1,10000):
  3.     md5_value = hashlib.md5(str(num).encode('utf-8')).hexdigest()
  4.     if md5_value[-1] == '3':
  5.         if md5_value[1:2] == md5_value[14:15] and md5_value[1:2] == md5_value[17:18]:
  6.             print(num)
复制代码
得到如下结果:
  1. $ python 1.py
  2. 422
  3. 1202
复制代码
尝试传入url?token=422,得到flag
10.png

web24
  1. <?php
  2. /*
  3. # -*- coding: utf-8 -*-
  4. # @Author: h1xa
  5. # @Date:   2020-09-03 13:26:39
  6. # @Last Modified by:   h1xa
  7. # @Last Modified time: 2020-09-03 13:53:31
  8. # @email: h1xa@ctfer.com
  9. # @link: https://ctfer.com
  10. */
  11. error_reporting(0);
  12. include("flag.php");
  13. if(isset($_GET['r'])){
  14.     $r = $_GET['r'];
  15.     mt_srand(372619038);
  16.     if(intval($r)===intval(mt_rand())){
  17.         echo $flag;
  18.     }
  19. }else{
  20.     highlight_file(__FILE__);
  21.     echo system('cat /proc/version');
  22. }
  23. ?> 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生成随机数
  1. php > mt_srand(372619038);
  2. php > echo mt_rand();
  3. 1155388967
复制代码
传入url?r=1155388967,得到flag
11.png

web25

[code]
您需要登录后才可以回帖 登录 | 立即注册