ctfshow-web爆破(web21-28)

ctfshow-web爆破(web21-28)(updating)

web21 burp爆破

题目

爆破什么的,都是基操


跟爆破相关,直接使用burp,因为win上的burp突然挂了,只能用kali上的先用一波,打开抓包,提示输入账号密码,输入然后抓包

image

看到Authorization字段像base64加密后的字段,解码查看

image

发现格式,然后我们发包到Intruder进行爆破,查看hint,发现账号密码

image

对其进行base64编码并加入爆破列表

image

image

拿到flag

image





web22 子域名

题目

域名也可以爆破的,试试爆破这个ctf.show的子域名


然后访问子域名查询爆破子域名,查到vip.ctf.show,鼠标放置标题处得flag





web23 MD5

还爆破?这么多代码,告辞!


查看网页源代码

点击查看代码
<!--?php

error_reporting(0);

include('flag.php');
if(isset($_GET['token'])){
    $token = md5($_GET['token']);
    if(substr($token, 1,1)===substr($token, 14,1) && substr($token, 14,1) ===substr($token, 17,1)){
        if((intval(substr($token, 1,1))+intval(substr($token, 14,1))+substr($token, 17,1))/substr($token, 1,1)===intval(substr($token, 31,1))){
            echo $flag;
        }
    }
}else{
    highlight_file(__FILE__);

}
?--> 

我们根据源代码发现,只需构造一个md5加密前的字符上传即可,于是构造字典用两个字符枚举符合条件的token,上传token得到flag
脚本如下

import hashlib

dic = '0123456789abcdefghijklmnopqrstuvwxyz'
#md5 = "xzhisapig"
md5 = hashlib.md5(dic.encode()).hexdigest()
for a in dic:
    for b in dic:
        t = str(a)+str(b)
        md5 = hashlib.md5(t.encode()).hexdigest()
        if(md5[1]==md5[14] and md5[14]==md5[17]):
            print(t)
            print(md5+"\n")

得到结果
       token   md5

  • 1m 9859011cc78b3687689e719ce0d111a5
  • 3j f12882fc7cde8e1ba1cadec10e3e9393
  • k0 28d61f7b1f07d88c18f1068410d140b5
  • kv 82d09147453d572bc287f74aad062cfa
  • ll 5b54c0a045f179bcbbbc9abcb8b5cd4c
  • mw 38fed7107cee058098ca06304c1beb90

然后一个一个试,3j能得到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-88-generic (buildd@lgw01-amd64-008) (gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)) #99-Ubuntu SMP Thu Sep 23 17:29:00 UTC 2021 Linux version 5.4.0-88-generic (buildd@lgw01-amd64-008) (gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)) #99-Ubuntu SMP Thu Sep 23 17:29:00 UTC 2021

根据查询,mt_srand函数只要规定了种子,其得到的伪随机数就是确定的,因此,我们自行构造一个和其种子一样的代码

<!--?php
    mt_srand(372619038);
    echo intval(mt_rand());
?-->

得到结果
1155388967

于是根据源代码将r赋为该值使用GET请求即得flag





web25 php mtrand()随机数生成漏洞

题目描述

爆个🔨,不爆了

拿到源代码

<!--?php

error_reporting(0);
include("flag.php");
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;
    }
}else{
    highlight_file(__FILE__);
    echo system('cat /proc/version');
} 


观察代码,要使rand为0,并且token和mt_rand()+mt_rand()相等即可得到flag。

首先,我们传入r=0得到intval(mt_rand())得值

r=0
rand=r-mt_rand()
rand = -195420007
-->mt_rand()=195420007

因此,r应传入195420007

然后解决token,这边参考大佬们关于伪随机数漏洞的博客:php伪随机数漏洞使用教程
里面介绍了关于知道了第一个随机数返回查找种子的脚本,脚本网址:
https://www.openwall.com/php_mt_seed/

脚本使用方法为:

kali下,进入目录,make  
time ./php_mt_seed 第一个随机数  

打开Kali开始操作,将前面得到的第一个随机数

time ./php_mt_seed 195420007

得到结果

Pattern: EXACT
Version: 3.0.7 to 5.2.0
Found 0, trying 0xe0000000 - 0xe3ffffff, speed 7829.4 Mseeds/s 
seed = 0xe316e4c8 = 3809928392 (PHP 3.0.7 to 5.2.0)
seed = 0xe316e4c9 = 3809928393 (PHP 3.0.7 to 5.2.0)
Found 2, trying 0xfc000000 - 0xffffffff, speed 7829.4 Mseeds/s 
Version: 5.2.1+
Found 2, trying 0x5a000000 - 0x5bffffff, speed 74.4 Mseeds/s 
seed = 0x5bbabbd8 = 1538964440 (PHP 5.2.1 to 7.0.x; HHVM)
seed = 0x5bbabbd8 = 1538964440 (PHP 7.1.0+)
Found 4, trying 0xb2000000 - 0xb3ffffff, speed 74.1 Mseeds/s 
seed = 0xb398a984 = 3013126532 (PHP 7.1.0+)
Found 5, trying 0xe0000000 - 0xe1ffffff, speed 74.2 Mseeds/s 
seed = 0xe1a145ca = 3785442762 (PHP 5.2.1 to 7.0.x; HHVM)
seed = 0xe1a145ca = 3785442762 (PHP 7.1.0+)
Found 7, trying 0xfe000000 - 0xffffffff, speed 74.3 Mseeds/s 
Found 7

将php7.1.0+的值遍历填入脚本,并依次将生成的token值增加到Cookie值里(通过firefox+Fn12存储可以修改Cookie值)

<?php
    mt_srand(3013126532);
    mt_rand();
    echo mt_rand()+mt_rand();
?>
//ps:这里需要mt_rand()是因为源代码里也先进行过依次随机数生成

最后验证得当seed为3013126532时可以得到flag





web26 抓包

题目描述

这个可以爆
image

打开burp,提交并抓包即得flag

image





web27 学生信息泄露+身份证号爆破

题目描述

CTFshow菜鸡学院招生啦!
image

有录取名单,有学生信息查询,有账号密码,盲猜用录取名单里的信息查询学生信息,然后登录获得flag

打开名单

image

然后我们打开查询界面,准备爆破第一位小同志

image

用burp抓包,发到Intruder模块

image

对其身份证号中间八位用八位生日进行爆破

image

爆破成功,生日为19900201

image

查看response包

HTTP/1.1 200 OK
Server: nginx/1.21.1
Date: Sat, 13 Nov 2021 11:28:51 GMT
Content-Type: text/html; charset=UTF-8
Connection: close
X-Powered-By: PHP/7.3.11
Content-Length: 195

{"0":"success","msg":"\u606d\u559c\u60a8\uff0c\u60a8\u5df2\u88ab\u6211\u6821\u5f55\u53d6\uff0c\u4f60\u7684\u5b66\u53f7\u4e3a02015237 \u521d\u59cb\u5bc6\u7801\u4e3a\u8eab\u4efd\u8bc1\u53f7\u7801"}

把最后一串数据放到控制台解码

image

得到弹窗

image

输入账号密码,得flag

image





web28 目录爆破

题目描述

大海捞针

hint:
通过暴力破解目录/0-100/0-100/看返回数据包,爆破的时候去掉2.txt 仅仅爆破目录即可

打开burp对目录爆破就完事儿,注意,我们在查询时一般查目录下都有得index.php

image

Cluster bomb可以进行多位置全组合爆破
而Pitchfork是顺序组合爆破
因此我们选择前者

image

但由于burp的爆破速度实在过于感人,只能通过编写py脚本来加快速度

import requests
def test():
    url = "http://dd700c76-18e1-44a2-b362-ae89bf91c68d.challenge.ctf.show/"
    for i in range(101):
        for j in range(101):
            newUrl = url+str(i)+"/"+str(j)+"/"+"index.php"
            a = requests.get(newUrl).status_code
            print("test:"+str(i)+"/"+str(j))
            if(a!=404):
                print(newUrl)
                return

test()

image

先去整个校园骑,希望回来它已经给我url了~

一个被冷风吹傻的崽子回来更完最后一点ddd
结果出来了

image

浏览器访问

image

?????
不是吧giegie
重开容器访问

image

啊呜,是上帝开了一个小玩笑~



完结撒花!!!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nostrawberry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值