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

admin 2025年1月11日12:21:19评论3 views字数 2224阅读7分24秒阅读模式

WEB21

抓包发现Authorization: 处有base64加密
CTFSHOW刷题之旅爆破[21-28]

解密后得知格式如下
CTFSHOW刷题之旅爆破[21-28]

将数据包发送至intruder。选择sniper模式
CTFSHOW刷题之旅爆破[21-28]

点击payload,选择以下模块
CTFSHOW刷题之旅爆破[21-28]

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

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

第三个放自己的密码字典就不截图了。然后我们用base64加密,并取消最下面的勾选。(因为在进行base64加密的时候在最后可能存在 == 这样就会影响base64 加密的结果)
CTFSHOW刷题之旅爆破[21-28]

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

web22

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

web23

该题是根据源码编写个脚本去跑
CTFSHOW刷题之旅爆破[21-28]

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

}
?>

意思就是当加密后的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  : [email protected]
@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)

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

web24

该题是考到了mt_srand() 函数,如果seed一样的时候值是一样的。俗称伪随机
CTFSHOW刷题之旅爆破[21-28]

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

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

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

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

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

web26

这题有点小奇葩,直接点击会显示链接成功。那么抓个包看看
CTFSHOW刷题之旅爆破[21-28]

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

web27

发现有个录取名单,下载下来
CTFSHOW刷题之旅爆破[21-28]

然后我们来到录取查询这准备爆破(发现恰好是年月日)
CTFSHOW刷题之旅爆破[21-28]

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

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

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

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

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

web28

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

看起来像是爆破目录(删掉2.txt)
CTFSHOW刷题之旅爆破[21-28]

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

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

©著作权归作者所有 - source: 535yx.cn

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月11日12:21:19
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CTFSHOW刷题之旅爆破[21-28]https://cn-sec.com/archives/3619176.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息