web21
打开后要求登录
附件是一个密码字典
使用bp抓包,将抓到的东西进行base64解码
发现是admin:密码的键值对
添加payload,payload类型为自定义迭代器,位置1为admin:
位置2为导入的字典
添加base64编码和取消url编码
然后开始攻击,发现长度和其他不同的包,查看响应,发现flag
web22
这道题现在好像不能做了?
web23
- [/code]
- [list]
- [*]md5算出的值是32位的16进制数
- [*]substr($token, 1, 1)是将token的字符串的第二个字符开始,取一个字符
- [/list][code]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[1:2] == md5_value[14:15] and md5_value[1:2] == md5_value[17:18]:
- print(num)
复制代码 得到如下结果:尝试传入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
[code] |