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]