ctfshow-misc-听说你喜欢爆破(详解 脚本 思路 全)

前言

首先感谢ctf平台和出题的大佬

其次感谢各位读者,对我的支持( •̀ ω •́ )y 有什么问题和建议可以私聊我

这个题是我这几天写WP时

发现这个题挺有意思的

没有耐心的人还真做不下去

总共有五大层爆破

一些见解和思路分享给你们

希望你们在旅途中玩的开心,学的开心( •̀ ω •́ )y

目录

前言

解题过程

第一层:outguess爆破

方法一

方法二

第二层:crc高宽爆破

第三层:MD5hash值爆破

方法One:

方法Two:

方法Three:

第四层:kali中使用fcrackziprocky字典爆破

第五层:AOPR4位数字爆破

加油各位( •̀ ω •́ )y 期待与君再相逢


解题过程

第一层:outguess爆破

最开始看到题目还以为是要爆破压缩包呢

结果下载附件是张图片这说明爆破的东西挺多呀

压缩包里是有提示的

八位日期的数字肯定是爆破隐写的密码

但是是什么隐写图片的名字是guess

所以就猜到需要用outguess这个工具

根据提示8位日期数字,应该就是解图片outguess解密密码

方法一

如果你社工逻辑明确的话看这张图片和题目都指向炸药(炸弹)

所以我就百度了一下炸药的发明时间是:1831年 但没有月份那就肯定不是

联想到炸药之父—诺贝尔的忌日1896121018961210

正好是8位直接上outguess

outguess -k '18961210' -r guess.jpg 1.txt

得到1.txt

这是方法一

方法二

同样我们也可以使用脚本直接爆破

提供脚本

# OGBrute.py
import os
import pandas
from datetime import datetime
 
beginDate = '18810101'     #密码开始值
endDate = '19001231'       #密码结束值
dic = [datetime.strftime(x, '%Y%m%d') for x in list(pandas.date_range(start =  beginDate, end = endDate))]
dic = dic[::-1]
 
for p in dic:
    out = './' + p
    cmd = 'outguess -k ' + p + ' -r guess.jpg ' + out
    os.system(cmd)
    o = open(out, 'rb').read()
    if len(o) == 0:
        os.system('rm ' + out)

他会以的密码进行命名

然后使用txt文档打开看(这个一个一个看有点麻烦)

只有这个文件有东西

那我们继续

打开网址(把s改成i 不理解为什么改去看这篇文章https://blog.csdn.net/m0_68012373/article/details/129043545

https://www.lanzoui.com/ia38dcb

第二层:crc高宽爆破

打开下载附件

打开为1X1的png图片,再次根据题意和图片名crc.png猜测,

脚本crc值替换成图片的crc(包括以后使用时)

尝试crc高宽爆破

import zlib
import struct
 
# 同时爆破宽度和高度
filename = "crc.png"
with open(filename, 'rb') as f:
    all_b = f.read()
    data = bytearray(all_b[12:29])
    n = 4095
    for w in range(n):
        width = bytearray(struct.pack('>i', w))
        for h in range(n):
            height = bytearray(struct.pack('>i', h))
            for x in range(4):
                data[x + 4] = width[x]
                data[x + 8] = height[x]
            crc32result = zlib.crc32(data)
            # 此处crc值替换成图片的crc
            if crc32result == 0xD3D5B18:  # 听说你喜欢爆破crc值
 
                print("宽为:", end='')
                print(width, end=' ')
                print(int.from_bytes(width, byteorder='big'))
                print("高为:", end='')
                print(height, end=' ')
 
                print(int.from_bytes(height, byteorder='big'))

运行得到图片的真实高度

直接在010里该高宽就行

保存

第三层:MD5hash值爆破

发现图片底下有东西

md5('https://www.lanzous.com/???',16) = 'fd7e8e47cd47f001'

再再次根据题意和图片底部提示猜测,尝试MD5hash值爆破

那MD5hash值爆破方法可多了

方法One:

Windows中的hashcat进行掩码爆破 然后十六进制转ascii字符

方法Two:

kali中使用自带hashcat进行爆破 然后十六进制转ascii字符

hashcat -a 3 -m5100 fd7e8e47cd47f001 https://www.lanzous.com/i?1?1?1?1?1?1 -1 ?l?d

方法Three:

python3脚本hash值掩码爆破

(脚本的功能就是hash值掩码爆破 然后十六进制转ascii字符 )

import hashlib

import string

s = string.ascii_lowercase + string.digits

for i in s:
    for j in s:
        for k in s:
            for l in s:
                for m in s:
                    for n in s:
                        url = "https://www.lanzous.com/i" + i + j + k + l + m + n
                        if hashlib.md5((url).encode()).hexdigest()[8:-8] == 'fd7e8e47cd47f001':
                            print(url)
                            exit(0)

得到链接:https://www.lanzous.com/ia35tmj(记得将lanzous改为lanzoui

(不理解为什么去看这篇文章https://blog.csdn.net/m0_68012373/article/details/129043545

第四层:kali中使用fcrackziprocky字典爆破

得到附件但需要密码压缩包有提示

请开始你的表演

在not++里粘贴 可以看到一段由.和-组成的编码

最开始还以为是摩斯密码后来发现不是

由点和杠组成,分别替换为0和1,然后二进制转字符

二进制01110010011011110110001101101011011110010110111101110101

得到rockyou

才开始以为是密码结果不是

不得不说作者真

既然rockyou不是密码 那就是提示

由rocky联想到kali自带的rocky爆破字典

kali中使用fcrackzip对Blasting it.zip进行字典爆破

fcrackzip -D -p /usr/share/wordlists/rockyou.txt -u Blasting\ it.zip

得到密码

darkdumymohamed0351409575

下载得到

第五层:AOPR4位数字爆破

打开结果被加密了没点耐心的人真做不下去

由文件名使用AOPR爆破4位数字得到密码

得到密码:6765,打开得到flag

得到flag

flag{y0u_4re_4_geniu5}

加油各位( •̀ ω •́ )y 期待与君再相逢

猜你喜欢

转载自blog.csdn.net/m0_68012373/article/details/129050809