CTFshow-Web入门-Web21-28 (爆破完结篇)

Web21

开启环境后,访问网站,发现存在一个账号密码验证,如图:

因此我们尝试使用Kali自带的Burp Suite抓包工具,抓个包看看;

如果我们尝试输入用户名:admin 密码:123时,对应发送的请求包如图:

此时我们发现存在一个字段Authorization,他的值为Basic + Base64编码组成,

我们对Base64编码进行解密:

此时不难发现,该Base64编码即为我们输入的[用户名:密码]进行Base64编码后得到的;此时YWRtaW46对应的是adminMTIz对于的是123;

我们猜测账号名称就是admin,因此我们只用尝试对密码进行爆破,我们使用Burp Suite的Intruder模块进行爆破;我们需要选中密码对其添加标记$;

接下来我们需要设置Intruder模块中的Payloads选项:首先需要指定一个用于爆破密码的字典这里大家可以下载我给出的字典https://www.aliyundrive.com/s/YCApNTrhgHN下载完成后进行导入,如图:

接下来,我们还需要设置Payloads选项中的Payload Processing(有效载荷处理)选项,让我们指定的爆破列表,经过我们设置的处理方式,再进行爆破

这里我们根据题目要求,需要将密码进行Base64编码,所以我们添加一个Encode选项并制定编码格式为Base64 如下图:

然后我们还需要取消符号再编码,因为我们不需要将Base64编码后的符号转换为其他编码格式;

最后我们点击开始爆破即可:

ctfshow{677e5bc0-02c4-4517-9322-03ced705011f}


Web22

推荐用OneForAll爆破 项目地址:GitHub - shmilylty/OneForAll: OneForAll是一款功能强大的子域收集工具

或者用在线子域名爆破网站:http://z.zcjun.com/

flag{ctf_show_web}


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: h1xa@ctfer.com
# @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__);

}
?>
substr($token, 1,1)===substr($token, 14,1) && substr($token, 14,1) ===substr($token, 17,1))
 // 表示$token的第2个字母与第15个字母与第18个字母要相同
intval(substr($token, 1,1))+intval(substr($token, 14,1))+substr($token, 17,1))/substr($token, 1,1)===intval(substr($token, 31,1))
//表示判断  $token的第2个数字+第15个数字+第18个数字的和 除以  $token的第二个数字 是否等于 $token的第32个数字

得到了题目条件之后,我们可以编写一个脚本:

<?php
$string = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
for($i=0;$i<strlen($string);$i++) {
    for($j=0;$j<strlen($string);$j++){
        $token = md5($string[$i].$string[$j]);
        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 $string[$i].$string[$j]."\n";
            }
    }
}
}
?>

然后进行get传参即可得到答案:

ctfshow{4d49305d-5fd1-427e-b184-06616a16c0dc}


Web24

Web25

Web26

Web27

Web28

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值