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-信息收集

CTFshow刷题日记-WEB-代码审计(web301-310)SQL注入SSRF打MySQLSSRF打FastCGISSRF文件读取

CTFshow刷题日记-WEB-SSTI(web361-372)

CTFshow刷题日记-WEB-XSS(web316-333)

CTFshow刷题日记-WEB-文件上传

CTFshow刷题日记-WEB-命令执行下55-77