前言
首先感謝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}