前言
首先感谢ctf平台和出题的大佬
其次感谢各位读者,对我的支持( •̀ ω •́ )y 有什么问题和建议可以私聊我
这个题是我这几天写WP时
发现这个题挺有意思的
没有耐心的人还真做不下去
总共有五大层爆破
一些见解和思路分享给你们
希望你们在旅途中玩的开心,学的开心✌( •̀ ω •́ )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}