ctfshow web入门爆破web21-28wp

入门几个月的萌新CTFer,记录下自己做题的wp

爆破

web21

爆破什么的,都是基操

考点:基础爆破工具的使用

在这里插入图片描述

burpsuite抓包
在这里插入图片描述

发现base64编码,解码后发现是我们输入进去的用户名和密码,题目也给出了字典,接下来就是爆破

选中发送到Intruder模块,选中变量,选择自定义
在这里插入图片描述
在这里插入图片描述

这里分别给三段(Position),admin一段,:一段,字典一段

在这里插入图片描述

选择base64编码,勾掉url编码,因为会误判base64编码,开始爆破

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

ctfshow{92f49a08-737e-4358-a25a-348a1463ba63}

web22

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

考点:域名爆破

工具:Layer挖掘机

在这里插入图片描述

大概就是这样,vip.ctf.show访问发现flag

flag{ctf_show_web}

web23

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

大致意思是,GET一个参数token,token的MD5加密后的值如果满足下面的判断,就输出flag

<?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__);

}
?> 

这里用大佬们的脚本跑一下

<?php
for($i=0;$i<10000;$i++){
	$token = md5($i);
    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 'token='.$i.'&'.'md5='.$token;
        }
    } 
}
?>

大意是从0循环到10000,若某数的MD5满足条件,则输出此数

将payload运行一下
在这里插入图片描述

将结果get形式输入得到flag

ctfshow{63e95184-b8e8-4b9a-b716-f085f122cfc2} 

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-131-generic (buildd@lcy02-amd64-108) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)) #147-Ubuntu SMP Fri Oct 14 17:07:22 UTC 2022 Linux version 5.4.0-131-generic (buildd@lcy02-amd64-108) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)) #147-Ubuntu SMP Fri Oct 14 17:07:22 UTC 2022

网上搜索了mt_srand函数使用后得到以下payload

<?php
mt_srand(mktime());
echo(mt_rand());
?>
payload:
<?php
mt_srand(372619038);
echo(mt_rand());
?>

将运行的结果GET形式输出得到flag

ctfshow{5065d66d-72ca-4749-8cde-61c9518cf77a}

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: h1xa@ctfer.com
# @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-131-generic (buildd@lcy02-amd64-108) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)) #147-Ubuntu SMP Fri Oct 14 17:07:22 UTC 2022 Linux version 5.4.0-131-generic (buildd@lcy02-amd64-108) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)) #147-Ubuntu SMP Fri Oct 14 17:07:22 UTC 2022

首先进行代码审计,mt_srand(seed)是发放seed种子然后靠mt_srand生成随机数,这里没有给出seed,所以我们需要通过工具逆向推出seed

mt_srand(hexdec(substr(md5($flag), 0,8)));

rand不为true,则返回true,所以通过GET形式r=0得到第一个随机数的负数,如果$_COOKIE[‘token’]等于两个mt_rand()随机数的和则输出flag

$rand = intval($r)-intval(mt_rand());
if((!$rand)){
        if($_COOKIE['token']==(mt_rand()+mt_rand())){
            echo $flag;
        }
    }else{
        echo $rand;
    }

打开kali,这里我们用php_mt_seed,我们选用php7的seed
在这里插入图片描述

payload:
<?php
mt_srand(0x3b63da0d);
mt_rand();
echo mt_rand()+mt_rand();
?>

得到token的随机数,我们burpsuite抓包,在cookie上添加token和第二第三次随机数的和,在GET形式输出第一次获得的随机数得到flag

在这里插入图片描述

ctfshow{64cc811c-54b6-4906-acd0-91469d377dd0}

web26

这个可以爆

在这里插入图片描述

burpsuite抓包爆破密码

在这里插入图片描述

ctfshow{19e3283c-f4d3-4249-9f87-780ae05a38ac}

web27

CTFshow菜鸡学院招生啦!

下载录取名单,看到录取名单和查询系统可知,就是爆破出生日期,这里以第二个为例

在这里插入图片描述

在这里插入图片描述

首先用burpsuite抓包,这里我用火狐抓不到POST包,所以用了其他浏览器

在这里插入图片描述
在这里插入图片描述

选择爆破变量
在这里插入图片描述

选择日期类型,格式yyyyMMdd后开始爆破

在这里插入图片描述

爆破出来后发现msg是url编码,解码后得到线索“恭喜您,您已被我校录取,你的学号刷初始密码为身份证号码”

在这里插入图片描述

在这里插入图片描述
登陆得到flag
在这里插入图片描述

ctfshow{2ccb2be2-6545-441a-8b16-070d6395726a}

web28

大海捞针

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

根据提示,只需要爆破目录即可,burpsutie抓包选中变量,去掉2.txt,将模式改成Cluster bomb(集束炸弹)
在这里插入图片描述

之后设置payload1,payload2同理,设置完后开始爆破
在这里插入图片描述

在这里插入图片描述

查看状态栏的升序看到个200,得到flag

ctfshow{bb330eeb-0827-42c2-be2e-8a942cbc3b1c}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值