51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

CTFSHOW刷题之旅--爆破[21-28]

WEB21 {#WEB211051}

抓包发现Authorization: 处有base64加密
80177-sqgdm680hi.png

解密后得知格式如下
81798-0yp7ijg8qlwb.png

将数据包发送至intruder。选择sniper模式
26200-9ct4mt1gvig.png

点击payload,选择以下模块
74724-4jnik5c43bv.png

78387-ueuv00nasvb.png

58980-5atncvc6s6w.png

第三个放自己的密码字典就不截图了。然后我们用base64加密,并取消最下面的勾选。(因为在进行base64加密的时候在最后可能存在 == 这样就会影响base64 加密的结果)
03462-q7ty98hiem.png

46983-eiopp52l96n.png

web22 {#web221240}

该题是爆破子域名(直接用layer爆破就好了)

web23 {#web231837}

该题是根据源码编写个脚本去跑
07810-70gevd63r1v.png

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

}
?>

意思就是当加密后的token第2位等于15位=18位的值(编程从0开始算)

      然后(第2位+15位+17位)/第2位的值要等于第32位

然后编写脚本就好了。我利用python写的脚本如下

#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
@File  : web22.py
@Author: YanXia
@Date  : 2021/8/2 13:29
@email  : yx535@qq.com
@link:https://535yx.cn
'''
import requests,hashlib
a='0123456789qwertyuiopasdfghjklzxcvbnm'
url='http://b6a1c242-69c7-487b-89e3-705092b354e0.challenge.ctf.show:8080/?token='
for i in a:
    for j in a:
        x=(str(i)+str(j)).encode('utf-8')
        payload=hashlib.md5(x).hexdigest()
        #print("%s|%s"%(x,payload))
        if payload[1:2]==payload[14:15] and payload[14:15]==payload[17:18]:
            if ((int(payload[1:2])+int(payload[14:15])+int(payload[17:18]))/int(payload[1:2]))==int(payload[31:32]):
                r=requests.get(url+x.decode('utf-8'))
                r1=r.text
                print(r1)
                #print(payload)

40984-wdefqc7zjjq.png

web24 {#web242326}

该题是考到了mt_srand() 函数,如果seed一样的时候值是一样的。俗称伪随机
84686-jm13n5oszjh.png

60661-h30x8m0lh88.png

web25 {#web256595}

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

代码审计后可知,当r=0时候可以直接获得$rand的值1242990134 (动态容器,每个值不相同)
然后我们利用该工具地址:https://github.com/Al1ex/php_mt_seed 去逆推种子(下图种子比较多,需要自己试试)
55310-qulbmprh3q.png

99877-0s2p2co36dl.png

59068-t6doyv94fs.png

web26 {#web264538}

这题有点小奇葩,直接点击会显示链接成功。那么抓个包看看
37745-qcyd1c6p1m.png

25267-tcm0qwjv4v.png

web27 {#web272011}

发现有个录取名单,下载下来
27802-5n6gidi9sb.png

然后我们来到录取查询这准备爆破(发现恰好是年月日)
43837-jf6iydhp5d.png

35227-ozqf2j0mxv.png

00646-inun56ejevi.png

77174-guowc7nuydl.png

57612-xyfl37yavmh.png

获得flag
07689-khxzktkcf0j.png

web28 {#web284829}

09324-2tn1ez5jh1s.png

看起来像是爆破目录(删掉2.txt)
42186-mcs4y5f1ym.png

52043-klysedptalj.png

54746-5ks3cozea18.png

赞(0)
未经允许不得转载:工具盒子 » CTFSHOW刷题之旅--爆破[21-28]