目录
web21
web22
web23
web24
web25
web26
web27
web28
本文疯狂参考huamanggg师傅
web21题目给了一个压缩包,有弱口令字典我们就抓包
并没有显示 账号密码的明文,而是用圈红地方的base64表示的,转码之后得到就是
admin:123 也就是我输入的账号密码 中间还有个冒号
Hint:
考点tomcat 认证爆破之custom iterator使用 tomcat 认证爆破之custom iterator使用 - 007NBqaq - 博客园 下载密码字典抓包,通过burpsuite暴力破解
Payload set ---->custom iterator(自定义迭代器)
三个部分分别导入,第一个账户admin 第二个冒号:其实可以合并到第一个 第三密码字典
需要进行base64编码;payload processing 进行编码设置
取消Palyload Encoding编码 因为在进行base64加密的时候在最后可能存在 == 这样就会影响base64 加密的结果
开始爆破就行,时间还是挺久的,这题也可以使用爬虫脚本
web22http://flag.ctfer.com/index.php
页面已经失效了
web23
可以知道要GET 一个 token值 满足以上条件 ,很多函数不了解 ,去学习一下
isset() — 检测变量是否设置
substr函数格式 (俗称:字符截取函数) 格式: substr(string string, int a, int b);
1、string 需要截取的字符串
2、a 截取字符串的开始位置(注:当a等于0或1时,都是从第一位开始截取)
3、b 要截取的字符串的长度
intavl() 获取变量的整数值
变量token被md5加密,第一位=第十四位=第十七位,
化为整数后(第一位+第十四位+第十七位)/第一位=第三十一位
脚本附上,只判断了第一个条件,然后一个一个试 3j 是对的
import hashlib
a ='0123456789abcdefghijklmnoqprstuvwxxyz'
for i in a:
for j in a:
t=(str(i)+str(j)).encode()
md5=hashlib.md5(t).hexdigest()
if md5[1:2]==md5[14:15]==md5[17:18]:
print(t)
url后面加 /?token=3j ,就出来 了
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');
}
mt_srand([ int $seed] ) : void
用 seed 来给随机数发生器播种。 没有设定 seed 参数时,会被设为随时数。使用者在进行一次mt_srand()操作后,seed数值将被固定下来,给接下来的mt_rand()函数使用。
当种子不变时,实际上生成的随机数是固定的。而这就是伪随机数漏洞,部分ctf题便以此为考点
看到mt_srand()函数即可知道是伪随机数,每次生成的随机数是一样的
那我们就来跑一下题目里的mt_srand(372619038)
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?