CTFshow刷题日记-WEB-爆破
Posted Ocean:)
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CTFshow刷题日记-WEB-爆破相关的知识,希望对你有一定的参考价值。
web21
提示:爆破什么的,都是基操
有一个zip文件,解压是一个爆破字典
Authorization: Basic dG9tY2F0OmFkbWlu ------->输入的用户名/口令以base64的形式传输。认证失败显示401 认证成功为200
将Authorization字段后面的值进行base64 解码,即可获取用户认证信息明文
使用bp的Intruder模块
payload type 选择custom iterator(自定义迭代器)
自定义迭代器可以自定义拼接方式,position的位置即为我们的拼接方式,根据上述base64解码的tomcat密码的格式:用户名:密码 ----->则position的位数为3
position 3------>输入字典
postion 2 即为 :
拼接完成后进行base64编码,payload processing 进行编码设置
取消勾选编码
返回值200即为登录成功
密码为:
不知道为啥好多200的结果,发现一个对的
ps:burp可以直接去官网下载最新版,用原来的burploader启动即可
ps:如果出现这种情况,拉伸下尺寸就行
web22
提示:域名也可以爆破的,试试爆破这个ctf.show的子域名
但是正确结果却是:http://flag.ctfer.com/index.php
这有啥联系么。。。。。。
web23
提示:还爆破?这么多代码,告辞!
import hashlib
dic = '1234567890qwertyuiopasdfghjklzxcvbnm'
str1 = hashlib.md5(dic.encode("utf-8")).hexdigest()
for i in dic:
for j in dic:
str = i + j
md5 = hashlib.md5(str.encode("utf-8")).hexdigest()
if md5[1:2] == md5[14:15] == md5[17:18] :
print(str)
token=3j
web24
提示:爆个🔨
if(isset($_GET['r'])){
$r = $_GET['r'];
mt_srand(372619038);
if(intval($r)===intval(mt_rand())){
echo $flag;
}
}
mt_scrand(seed)这个函数的意思,是通过分发seed种子,然后种子有了后,靠mt_rand()生成随机 数。 提示:从 PHP 4.2.0 开始,随机数生成器自动播种,因此没有必要使用该函数 因此不需要播种,并且如果设置了 seed参数 生成的随机数就是伪随机数,意思就是每次生成的随机数 是一样的
最好不要用在线php,真的坑
在电脑上跑就是不一样的结果,这个正确
web25
if(isset($_GET['r'])){
$r = $_GET['r'];
mt_srand(hexdec(substr(md5($flag), 0,8)));
$rand = intval($r)-intval(mt_rand());
if((!$rand)){
if($_COOKIE['token']==(mt_rand()+mt_rand())){
echo $flag;
}
}else{
echo $rand;
}
预想的方法
?r=0
输出:-1075898738
$rand=-1075898738,所以$mt_rand=1075898738
我们的token就等于 1075898738+1075898738=2151797476
然而这样真的对么, mt_rand()+mt_rand(), 根据伪随机数加密原理,https://www.cnblogs.com/zaqzzz/p/9997855.html, 其实第一次和第二次的数字并不相同,所以需要用到一个脚本
知道种子后,可以确定你输出伪随机数的序列。
知道你的随机数序列,可以确定你的种子。
下载地址:https://www.openwall.com/php_mt_seed/
使用方法:kali下,在目录下打开终端执行make命令,
time ./php_mt_seed 第一个随机数
第一个随机数就是r=0输出的
计算出来多个结果,需要试一下
怎样进入if判断
if((!$rand)){
if($_COOKIE['token']==(mt_rand()+mt_rand())){
echo $flag;
}
可以让rand的值为0
rand又是通过计算得来的, r a n d = i n t v a l ( rand = intval( rand=intval(r)-intval(mt_rand());,所以让rand的值为r=0时的整数即可
最终
r=1075898738
Cookie:1452677296
web26
两种解法
第一种直接暴力破解密码:7758521
第二种发现啥都不填,也就是直接点击提交,竟然返回连接成功
web27
好家伙,这个题很接近渗透了
底下的录取名单有学生信息泄露,又存在录取查询
问题就是身份证号的问题了,爆破成功
get学号密码,登录成功获得flag
web28
提示:大海捞针
上来这个目录就离谱,所以直接bp爆目录
0638808067)]
get学号密码,登录成功获得flag
web28
提示:大海捞针
上来这个目录就离谱,所以直接bp爆目录
以上是关于CTFshow刷题日记-WEB-爆破的主要内容,如果未能解决你的问题,请参考以下文章
CTFshow刷题日记-WEB-代码审计(web301-310)SQL注入SSRF打MySQLSSRF打FastCGISSRF文件读取
CTFshow刷题日记-WEB-SSTI(web361-372)