CTF-Show-爆破系列

这篇具有很好参考价值的文章主要介绍了CTF-Show-爆破系列。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

CTF-Show-爆破系列

Problem 1

前置知识

burp的四种爆破模式:
CTF-Show-爆破系列
上述内容来自:https://blog.csdn.net/m0_74097148/article/details/128901184

思路

下载题目中给定的字典。打开页面发现是一个登录框,猜测用户名为admin,密码直接使用burp来进行字典爆破。
CTF-Show-爆破系列

字典的内容为:
CTF-Show-爆破系列

尝试填写表单数据(admin admin)并抓包:
CTF-Show-爆破系列
发现并没有我们输入的admin admin。但是我们发现Authorization字段的值为Base64编码,将其进行解码发现:
CTF-Show-爆破系列
找到了我们输入的表单内容。该网站会将我们输入的用户名和密码进行Base64编码后,再进行检验。

因此,我们将用户名固定为admin,密码进行字典爆破,在爆破的同时,使用Base64编码。使用Burp,步骤如下:

  • 对于抓来的包,单击右键 send to intruder
  • CTF-Show-爆破系列
  • 选择sniper模式,payload set选择如下图
  • CTF-Show-爆破系列
  • 选择payloads模块
  • CTF-Show-爆破系列
  • payload type: Custom iterator
  • Position 1:admin(用户名固定为admin)
  • Position 2: :(中间固定为:)
  • Position 3:加载所下载的字典(密码进行字典爆破)
  • Pyload processing 为 base64 encode
  • 取消勾选Pyload encoding
  • CTF-Show-爆破系列
  • CTF-Show-爆破系列
  • 单击 start attack 开始爆破
  • CTF-Show-爆破系列
  • 看到返回状态码为200,代表爆破成功

对该Base64进行解码,得到明文账号密码,进行登录,得到flag。
CTF-Show-爆破系列
CTF-Show-爆破系列

Problem 2

前置知识

爆破不光可以应用在用户名密码猜解,还可以用在域名中。

子域名爆破可以扩大我们的资产,对于SRC挖掘有着非常好的帮助。

思路

使用在线子域名爆破工具:http://z.zcjun.com/

输入域名:ctf.show,尝试爆破子域名。

CTF-Show-爆破系列

将爆破出来的子域名一个一个的访问,最终都会得到flag。

Problem 3

打开页面,发现一段代码,开始阅读:

<?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');
//token通过get传值
if(isset($_GET['token'])){
    //进行md5加密
    $token = md5($_GET['token']);
    //密文的第二个字符(位置从0开始)等于第15个字符且第15个字符等于第18个字符
    if(substr($token, 1,1)===substr($token, 14,1) && substr($token, 14,1) ===substr($token, 17,1)){
        //intval为转换成数值
        //第二个字符+第15个字符+第18个字符 / 第二个字符 === 第32个字符
        if((intval(substr($token, 1,1))+intval(substr($token, 14,1))+substr($token, 17,1))/substr($token, 1,1)===intval(substr($token, 31,1))){
            //输出flag
            echo $flag;
        }
    }
}else{
    highlight_file(__FILE__);

}
?>

阅读上述的代码,发现这个明文是很难构造的,只能通过爆破来猜解。

使用burp来字典爆破,数字遍历token的值即可。(这里的数字采用1-10000000)

CTF-Show-爆破系列

CTF-Show-爆破系列

CTF-Show-爆破系列

发现当token=422时,满足上述代码的要求(length跟其他的请求不同),进而得到flag。

CTF-Show-爆破系列

CTF-Show-爆破系列

Problem 4

前置知识

php伪随机数漏洞:

简单来说:如果mt_srand(seed)函数种子确定,那么无论进行多少次请求,mt_rand()的值均是确定的.

换句话说,我们也可以通过mt_rand()的值,来反推种子。

更多内容查看:https://blog.csdn.net/BrosyveryOK/article/details/127061458

思路

打开页面,发现一段代码,进行阅读:

error_reporting(0);
include("flag.php");
//r通过get传参
if(isset($_GET['r'])){
    $r = $_GET['r'];
    //播种种子372619038
    mt_srand(372619038);
    //如果输入的值和生成的值(mt_rand生成随机数)相等
    //由于种子确定,那么mt_rand()的值也是确定的。(无论进行多少次请求,多少次重新运行)
    if(intval($r)===intval(mt_rand())){
        //输出flag
        echo $flag;
    }
}else{
    highlight_file(__FILE__);
    echo system('cat /proc/version');
}

由于mt_rand的值是固定的,因此我们可以采用burp来进行字典爆破(时间很长)。

或者,我们可以重新书写一个php文件,得到mt_rand()的值,然后给r即可得到flag。

mt_srand(372619038);
echo mt_rand(); //1155388967

将该值给到r,进行get传参,得到flag。

CTF-Show-爆破系列

Problem 5

前置知识

在上一题的基础上,seed值不公开了。

更多内容参考:https://blog.csdn.net/BrosyveryOK/article/details/127061458

思路

打开网页,源码如下:

error_reporting(0);
include("flag.php");
//r为get传参
if(isset($_GET['r'])){
    $r = $_GET['r'];
    //从$flag中获取seed
    mt_srand(hexdec(substr(md5($flag), 0,8)));
    //将r的值和mt_rand()值相减
    $rand = intval($r)-intval(mt_rand());
    //如果差为0
    if((!$rand)){
        //如果token的值(cookie传参)等于两次生成随机数的值相加
        if($_COOKIE['token']==(mt_rand()+mt_rand())){
            //得到flag
            echo $flag;
        }
    }else{
        //如果差不为0,那么得到差值
        echo $rand;
    }
}else{
    highlight_file(__FILE__);
    echo system('cat /proc/version');
}

这道题由于不知道seed,因此mt_rand()值无法确定,我们可以通过php_mt_seed工具来反推seed。

但是,这里反推seed,需要一个前提条件:你得事先知道mt_rand()的值,才可以进行反推。这道题的源码中当:将r的值和mt_rand()值相减不为0时,会输出差值。我们可以通过这种途径来知道mt_rand()的值,从而反推seed,否则这道题无解。

php_mt_seed工具下载地址:https://www.openwall.com/php_mt_seed/

过程:

访问如下url:http://c9f3ac04-3f97-43af-8db0-e9b9e75304d4.challenge.ctf.show/?r=0

得到mt_rand()的随机数:-1638561645 => 1638561645

通过该工具,得到seed
CTF-Show-爆破系列

由于该网站的PHP版本为7.x,因此seed为:2759183718

我们根据该seed来生成随机数

<?php
mt_srand(2759183718);
echo mt_rand()."\n"; 
echo mt_rand()."\n";
echo mt_rand()."\n";
?>

结果为:

1638561645
1983296972
1583738348
第二个和第三个随机数相加结果为:3567035320

将如上结果进行传入,得到flag

CTF-Show-爆破系列

Problem 6

打开页面,进入安装页面,查看该页面的源代码
CTF-Show-爆破系列

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport" content="initial-scale=1,maximum-scale=1, minimum-scale=1">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<meta name="apple-mobile-web-app-capable" content="yes">
	<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
	<title>ctfshow系统安装界面</title>
	<link href="css/style.css" rel="stylesheet">
</head>
<body>

	<div class="pc-kk-form">
		<center><h1>CTFshow flag管理系统安装</h1></center><br><br>
		<form action="">
			<div class="pc-kk-form-list">
				<input id="a" type="text" placeholder="数据库地址:localhost">
			</div>
			<div class="pc-kk-form-list">
				<input id="p" type="text" placeholder="端口:3306">
			</div>
			<div class="pc-kk-form-list">
				<input id="d" type="email" placeholder="数据库:ctf">
			</div>
			<div class="pc-kk-form-list">
				<input id="u" type="email" placeholder="用户名:root">
			</div>
			<div class="pc-kk-form-list">
				<input id="pass" type="tel" placeholder="密码:123456">
			</div>
			
			<div class="pc-kk-form-btn">
                <!-- 单击按钮后,触发check方法 -->
				<button onclick="check();">确认无误,开始安装</button>
			</div>
		</form>
	</div>


	<script type="text/javascript" src="js/jquery.min.js"></script>

	<script>

        //发送ajax请求
        //访问checkdb.php(POST请求)
		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']);
			}

		});
		}


	</script>

</body>
</html>

根据上述的代码,当用户单击按钮时,会触发ajax请求,将表单中的信息传递给checkdb.php,如果各种信息都正确,那么会提示正确,否则错误。

我们可以根据发送的ajax请求,抓一个包看看:
CTF-Show-爆破系列

结果发现flag藏在响应数据(json)里。

Problem 7

思路

打开页面
CTF-Show-爆破系列
我们并不知道学生的学号和密码,单击下方的录取名单,下载文件,得到如下信息。
CTF-Show-爆破系列
身份证号码不全面,先放这,单击学生学籍信息查询系统,得到如下页面
CTF-Show-爆破系列
代表需要身份证号码,才可以获得学号。由于身份证号码不全面,因此我们需要进行爆破。
CTF-Show-爆破系列

导入字典,这里我们使用如下python脚本来生成一个8位数的字典(也可以使用下图的字典)

for i in range(0,99999999,1):
    i = str(i)
    if len(i) != 8:
        for j in range(0,8):
            if len(i) == 8:
                break
            else:
                i = '0' + i
    with open('dict.txt','a') as file:
        file.write(i+"\n")

得到字典后,将其导入,进行爆破,获得学号
CTF-Show-爆破系列
CTF-Show-爆破系列
发现有一个身份证号长度不同,代表爆破成功!
CTF-Show-爆破系列
得到了一串unicode编码,将其进行解码
CTF-Show-爆破系列
得到了学号和身份证号后,进行登录,得到flag
CTF-Show-爆破系列

Problem 8

思路

根据url:http://4844b84d-afc6-413a-a0f7-5abaf91e5dec.challenge.ctf.show/0/1/2.txt

我们发现:前两个目录是可以进行爆破的,我们采用burp来进行爆破。

CTF-Show-爆破系列

CTF-Show-爆破系列

CTF-Show-爆破系列

CTF-Show-爆破系列

开始爆破,得到flag。(时间比较长,大概需要10000次)

CTF-Show-爆破系列

有一个请求,长度不同(/72/20)。代表爆破成功!

CTF-Show-爆破系列

总结

常见爆破手段文章来源地址https://www.toymoban.com/news/detail-837672.html

  • 字典+base64编码
  • 子域名爆破
  • 数字爆破
  • 伪随机数漏洞(seed爆破)
  • 普通字典爆破
  • 双/多字典爆破
  • ...

到了这里,关于CTF-Show-爆破系列的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ctf.show 愚人杯

    1、奇怪的压缩包 下载附件解压提示要密码 使用010editor打开,发现frFlags 和 deFlags 的值都被修改了,这就会造成压缩包的伪加密, 将它们都改回0。  另存为一个文件再打开,没有密码提示了  解压发现图片并不完整,反正高度并不够的,下面还有内容没有显示出来  放入01

    2023年04月16日
    浏览(27)
  • CTF show逆向5

    没有壳,32位文件 同时注意到附件里的dll文件 找到主函数 分别看看sub_4020B0 sub_4015BD 这两个函数 我发现一般看到MessageBoxA函数,都需要动态调试 动调看到 这里直接进行了返回,返回到了主函数 执行sub_4015BD函数 步入这个函数单步调试 发现Str[1]==1判断没有执行,直接跳过 看看

    2024年01月21日
    浏览(25)
  • 简单的CTF web密码爆破

     打开题目,审题。发现题目明确给出登录的用户名为Syclover,并要求我们爆破一个长度为6位纯数字的简单密码,并告诉我们密码开头为774。由此我们知道这是一题非常基础的密码爆破题。 打开环境发现存在一个登录界面: 我们根据提示输入用户名,密码不妨就随便尝试77

    2023年04月09日
    浏览(34)
  • 小白刷题CTF show web方向

    右键查看源代码,再使用在线解密,就可以得出答案了 admin\\\' or 1=1 或者 1 or 1=1 可以登录 查询几个字段: 1\\\' or 1=1 order by 3 # 使用此语句,判断列数。 order by 3不会出错,但是order by 4就没有显示了,因此判断共有3列。 ORDER BY 子句中的数字(如 ORDER BY 4)通常表示 按照查询结果中

    2024年03月14日
    浏览(26)
  • 入坑CTF的第一篇CRC32爆破【MISC】

    最近遇到一道CTF的一道题,大意是: 一个被压缩的Zip压缩包,在无法使用加密口令解压的情况下,如何获取其中文本文件的内容。 思路:对于文件大小6B的文件,可以利用CRC32的校验值,爆破文本内容。 我自己做了一个压缩包,没有使用密码加密,测试一下(以4字节的文件

    2024年02月12日
    浏览(32)
  • CTF show----web 解题笔记(web签到~web6)

    目录 web签到题 web2 考查点: 1.判断sql注入回显位置 2.查当前数据库名称 3.查看数据库表的数量 4.查表的名字 5.查flag表列的数量 6.查flag表列的名字 7.查flag表记录的数量 8.查flag表记录值 web3 web4 web5  web6 where is flag? 直接F12去找一下   找到   Y3Rmc2hvd3s1YzYyZWE0Mi04M2E5LTRhNDUtODRiM

    2023年04月18日
    浏览(32)
  • [CTF/网络安全]BurpSuite爆破实战解题详析之BUUCTF Brute 1

    免责声明:本文仅分享AntSword渗透相关知识,不承担任何法律责任。 请读者自行安装BurpSuite,本文不再赘述。 在用户名和密码都未知的情况下,进行用户名、密码的组合爆破,效率极低。 先爆破用户名,再利用得到的用户名爆破密码,将提高爆破速度。 题目 操作 Burp抓包

    2024年02月06日
    浏览(36)
  • 论文系列之Applying Large Language Models API to Issue Classification Problem

    这些研究展示了自动标记issue类型的不同方法,以及如何利用自然语言处理(NLP)和机器学习技术来辅助开源软件(OSS)项目的维护者和新贡献者。 通过这种方法,研究者能够在较小的数据集上训练模型,并在个体项目中实现了高达93.2%的精度、95%的召回率和89.3%的F1分数。这

    2024年02月02日
    浏览(31)
  • Burp suite ——爆破账户密码(含爆破token防爆破)

    此文章仅供交流学习使用。 目录 爆破普通账户密码 设置环境 处理burp suite的抓包数据 开始爆破 爆破token防爆破账户密码 设置环境 处理抓包数据 开始爆破 设置环境 1.打开火狐访问此网站,更改代理(火狐浏览器和burp suite须一致) 火狐更改代理路径:右上角设置--选项--高级

    2024年02月08日
    浏览(37)
  • 1206: Water problem

    给你n个数,找出与众不同的那一个 输入一个数n(3=n=1000),接下来输入n个数,数据保证这n个数中刚好有n-1个数相同,且每个数的绝对值都不大于1000000 输出那个“另类”的数 此题目给了我们n个数,要我们找出其中的一个不相同的数,也就是n个数中有n-1个数是同一个数,

    2024年01月19日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包