ctfshow web入门爆破web21-28wp

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

爆破

web21

爆破什么的,都是基操

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

ctfshow web入门爆破web21-28wp_第1张图片

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

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

选中发送到Intruder模块,选中变量,选择自定义
ctfshow web入门爆破web21-28wp_第2张图片
ctfshow web入门爆破web21-28wp_第3张图片

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

ctfshow web入门爆破web21-28wp_第4张图片

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

ctfshow web入门爆破web21-28wp_第5张图片
在这里插入图片描述

ctfshow web入门爆破web21-28wp_第6张图片

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

web22

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

考点:域名爆破

工具:Layer挖掘机

ctfshow web入门爆破web21-28wp_第7张图片

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

flag{ctf_show_web}

web23

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

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



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

}
?> 

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


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: [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-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


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: [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-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
ctfshow web入门爆破web21-28wp_第8张图片

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

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

ctfshow web入门爆破web21-28wp_第9张图片

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

web26

这个可以爆

ctfshow web入门爆破web21-28wp_第10张图片

burpsuite抓包爆破密码

ctfshow web入门爆破web21-28wp_第11张图片

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

web27

CTFshow菜鸡学院招生啦!

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

ctfshow web入门爆破web21-28wp_第12张图片

ctfshow web入门爆破web21-28wp_第13张图片

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

ctfshow web入门爆破web21-28wp_第14张图片
ctfshow web入门爆破web21-28wp_第15张图片

选择爆破变量
ctfshow web入门爆破web21-28wp_第16张图片

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

ctfshow web入门爆破web21-28wp_第17张图片

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

ctfshow web入门爆破web21-28wp_第18张图片

ctfshow web入门爆破web21-28wp_第19张图片
登陆得到flag
ctfshow web入门爆破web21-28wp_第20张图片

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

web28

大海捞针

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

根据提示,只需要爆破目录即可,burpsutie抓包选中变量,去掉2.txt,将模式改成Cluster bomb(集束炸弹)
ctfshow web入门爆破web21-28wp_第21张图片

之后设置payload1,payload2同理,设置完后开始爆破
ctfshow web入门爆破web21-28wp_第22张图片

ctfshow web入门爆破web21-28wp_第23张图片

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

ctfshow{bb330eeb-0827-42c2-be2e-8a942cbc3b1c}

你可能感兴趣的:(ctfshow,web入门,php,安全)