0
点赞
收藏
分享

微信扫一扫

CTFShow Web入门_爆破

福福福福福福福福福 2022-04-01 阅读 53

Web21

随便输入抓包

image-20220319165145359

发现Base64加密

image-20220319165235902

账号和密码用:隔开

使用BP构造payload爆破

image-20220319190509094

下载官方提供的字典 把后缀名改为.zip即可打开

image-20220319165739427

使用Custom iterator模式
image-20220319190606258

第一部分

image-20220319190709183

第二部分

image-20220319190752812

第三部分使用字典

image-20220319190821533

添加base64加密

image-20220319190843326

image-20220319170555561

关闭url编码

image-20220319190859899

爆破完按length排序查看最小的回包

image-20220319215305817

image-20220319200822331

Web22

子域名爆破,爆破ctf.show

image-20220321152412725

最终在vip.ctf.show的源码发现了flag

image-20220321152516231

Web23

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

}
?> 

这片代码主要的就是后面这两个if判断 我们需要构造一个符合条件的token

第一个条件:md5加密后的token第2,15,18位相等

第二个条件:第2,15,位与 18位/2位的值 相加等于第32位

使用python脚本爆破

import hashlib

dic = '0123456789qazwsxedcrfvtgbyhnujmikolp'
for a in dic:
    for b in dic:
        t = str(a) + str(b)
        md5 = hashlib.md5(t.encode('utf-8')).hexdigest()
        if md5[1:2] == md5[14:15] and md5[14:15] == md5[17:18]:
            if int(md5[1:2]) + int(md5[14:15]) + int(md5[17:18]) / int(md5[1:2]) == int(md5[31:32]):
                print(t)

得出结果是 3j

image-20220321155828841

拿到flag

Web24

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

my_srand()函数

<?php
mt_srand(372619038);
echo(mt_rand());
?>

得到运行结果

image-20220321163809287

这里有个问题:不同的php版本得到的结果可能不一样 我使用的php版本得到的结果是 999695185但是在菜鸟在线运行工具中的得到的结果是上图 ,这道题的答案也是上图

已get方式通过r传参

得到flag

image-20220321164027209

Web25

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

这道题先把flag的进行md5加密并取前8位然后进行16进制转10进制最后得到的值作为种子来生成随机数

通过cookie得到的token要等于两个随机数相加 (这个两个随机数并不相同)

同时我们可以通过?r=0传参得到生成的随机数 因为如果r为零则回执行else语句输出随机数的负数

image-20220322090313211

这里我得到的随机数是585666240

接下来使用脚本得到可能的seed值

放到linux下编译

cd php_mt_seed-4.0 
gcc php_mt_seed.c -o php_mt_seed
/php_mt_seed 737212628

接下来是漫长的等待

image-20220322095150965

通过响应头发现php的版本为7.3.11

image-20220321231926792

得到

接下来计算下两个随机数相加

<?php
mt_srand(3842734643);
echo mt_rand()."<br/>";
echo mt_rand()+mt_rand()."<br/>";
?>

得到:

585666240
1350320544

接下来传参

通过get 传参?r=585666240

抓包修改cookie token=1350320544

得到flag

image-20220322095242899

Web26

image-20220322143458709

右键查看源代码发现javascript代码

function check(){
	$.ajax({
	url:'checkdb.php',
	type: 'POST',
	dataType:'json',
	data:{
		'a':$('#a').val(),
		'p':$('#p').val(),
		'd':$('#d').val(),
		'u':$('#u').val(),
		'pass':$('#pass').val()
		},
		success:function(data){
			alert(data['msg']);
		},
		error:function(data){
			alert(data['msg']);
		}

	});
	}

使用post提交返回一个json

image-20220322144328975

接下来对pass进行爆破

image-20220322145311919

密码为7758521

查看返回包

image-20220322145407656

得到flag

Web27

image-20220322150028820

点击录取名单 得到一个表格

image-20220322150556267

可以看出来身份证哪里缺少了生日部分

点击进入学籍管理系统

image-20220322150920971

姓名 我们有了 身份证号缺少生日部分

抓包爆破 这里我用火狐抓的包有问题,换到chrome就好了

image-20220322151658846

image-20220322151959622

image-20220322152050729

得到出生日期 看回包

还以为是flag 没想到是unicode编码

image-20220322152154775

image-20220322152401867

登录 教务系统

拿到flag

image-20220322152542559

Web28

where is flag?

image-20220322153030411

image-20220322153115359

看到url 的目录有点奇怪

继续抓包爆破

image-20220322161517660

第一,二位置配置一样

image-20220322153553364

image-20220322161457124

查看回包

image-20220322161547231

拿到flag

举报

相关推荐

0 条评论