CTFshow--爆破靶场全攻略

前言

欢迎来到我的博客

个人主页:北岭敲键盘的荒漠猫-CSDN博客

本文主手把手详细整理ctfshow中爆破的攻略

 web21

打开页面发现要输入密码

观察数据包

401未授权

我们随便输入密码试试

再观察数据包

乍一看好像这个get没有任何参数

但是仔细看的话会发现多了一个明显为base64的东西

authorization

解密一下看看

咱们输入的东西

那么payload就是:分割账号密码,在这个位置进行爆破即可

下载下他的爆破字典

转化为规定形式

利用字典生成器来生成字典

把生成好的密码都存进去

制作爆破数据包

完成开始爆破

获得flag

web22

现在已经不能够使用了,直接给你了flag。

可以理解为:子域名爆破,我们疯狂试试域名,看返回码判断是否有域名。

web23

打开页面是一大串代码

<?php

/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-03 11:43:51
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-03 11:56:11
# @email: [email protected]
# @link: https://ctfer.com

*/
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__);

}
?> 

意思分析

看看有没有传入token值,然后给token进行md5加密。

之后判断第二个,第15个,第18个字符是否相等。

然后再判断他们加起来除以第二个字符是否等于第32个字符

如果满足条件就会给出flag

解题思路

fuzz大法,管他这么多干嘛,从一直接往后梭哈梭哈梭哈。。。

自己写脚本梭哈一个大数字典

然后梭哈梭哈梭哈

梭哈完成收工睡觉

web24

打开页面

这啥jb玩意

 <?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: [email protected]
# @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

意思表达

接收参数r,然后设置了一个随机数种子,当我们输入的数字跟随机数相同的话就会输出flag

知识拓展

mt_srand是设置随机数种子,直观理解就是我的世界地图种子,我们生成地图是随机的,但是我们使用随机数种子那么就是固定的。这个是个伪随机数。

解题思路

我们抓个数据包看看他是php什么版本

然后使用对应的版本,写一个相同的随机数种子,看看是啥就行。直接过

抓包看版本(我有插件直接爆版本了)

web25

 <?php

/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2020-09-03 13:56:57
# @Last Modified by:   h1xa
# @Last Modified time: 2020-09-03 15:47:33
# @email: [email protected]
# @link: https://ctfer.com

*/


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');
}
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

意思解析

本题也是随机数的题目。

一开始检测r参数,随机数的种子是固定的。

当我们传入了r之后它就会输出r-随机数生成的数并且给我们返回回来。

输出flag的条件是

我们输入的r参数与生成的第一个随机数相减为零,并且cookie为第二,3个数的和,那么就可以给我们输出flag。

解题思路

这场的种子是固定的,重点是我们猜出种子,然后利用种子跑出第2,3个数字,再进行传参。

本场的突破点就是这个r,它会返回r参数与第一个数的差值,也就是说我们输入0,那么就是负的第一个数。

传入参数r=0看看生成的第一个随机数是什么(每次的数字都不一样)

然后利用php随机数破解工具破解

kali中下载使用

git clone https://github.com/openwall/php_mt_seed

cd php_mt_seed

make

time ./php_mt_seed 第一个随机数

之后选出其中相应版本的php种子到php中全部算出来

之后依次尝试即可

r传递第一个随机数

cookie里传入token=第二三个随机数的和

然后就会出现flag了。

web26

打开页面,甚是懵逼

抓包看看,有啥东西

这题有点蒙,密码是7758521

输入后就会出现密码了,但是我爆破爆了大半年。有点离谱

看了看资料也是硬着头爆破的。

web27

菜鸡学院招生

录取名单会下载表格

根据表格中在学籍查询系统里爆破

这题是好题,但是也真的坑。

火狐玩家会被拦截post请求。所以莫得玩。

去别的浏览器玩吧

别的浏览器抓包需要开启本地计算机代理,说实话真不方便

这儿用的微软的,谷歌的都是需要这么开代理

 然后放进去爆破

硬着头爆破的话说实话还得爆破挺久的。

所以我们要动脑子思考咯

身份证中间位数是生日日期,而文中的相应位置刚好为生日日期。

也就是说,我们把现在还活在世界上的人的生日都给试一遍即可

我从1900年到2024年之间进行爆破,payload如上。

最终爆破身份号为

621022199002015237

 把他的编码进行中文解码

 其实yakit比较只能自动帮你解了

学号有了,密码为身份证号直接进

web28

最后的老表,大海捞针。

初始页面挺奇怪

之后爆破01即可

猜你喜欢

转载自blog.csdn.net/2302_79590880/article/details/142308349