BUUCTF-Misc(91-100)

Muneyoshi發表於2024-06-03

[MRCTF2020]CyberPunk

執行一下,他說2020.9.17才開始

image-20240531203336248

然後改一下系統時間

image-20240531203628978

就拿到flag

flag{We1cOm3_70_cyber_security}

[安洵杯 2019]Attack

參考:[BUU MISC刷題記錄 安洵杯 2019]Attack - 雲千 - 部落格園 (cnblogs.com)

找到了一個

image-20240531204042829

formost分離一下,在壓縮包找到了

image-20240531204849485

然後在匯出物件發現了

image-20240531205039889

lsass是windows系統的一個程序,用於本地安全和登陸策略

然後用mimikatz去獲取這個密碼

//提升許可權
privilege::debug
//載入dmp檔案
sekurlsa::minidump lsass.dmp
//讀取登陸密碼
sekurlsa::logonpasswords full

image-20240531211125798

拿到密碼解壓

image-20240531211247277

[UTCTF2020]basic-forensics

記事本開啟,搜尋flag

image-20240602201810596

[SUCTF 2019]Game

參考:

[BUUCTF:SUCTF 2019]Game-CSDN部落格

[SUCTF 2019]Game - 春告鳥 - 部落格園 (cnblogs.com)

在index.html,記得F12,否則一直彈窗,找到一個flag

image-20240602202501994

隨波逐流解密發現是假的flag

image-20240602202528277

suctf{hAHaha_Fak3_F1ag}

那我們再找一下吧,去看看圖片有什麼資訊不

lsb隱寫,試了試

image-20240602202723432

U2FsdGVkX1+zHjSBeYPtWQVSwXzcVFZLu6Qm0To/KeuHg8vKAxFrVQ==

然後base64解密出了salted

image-20240602203055017

然後我查了一下salted加密 - 什麼是 U2FsdGVkX1?- 加密堆疊交換 (stackexchange.com)

image-20240602204204522

image-20240602204131905

和這一串字元特徵值完全符合,然後3DES解密一下https://www.sojson.com/encrypt_triple_des.html

密文就是那一串Base64,金鑰就是之前的假flag

image-20240602203604553

[BSidesSF2019]zippy

追蹤tcp流1發現了一個壓縮包

image-20240602204530302

我們binwalk提取出

然後再tcp流0發現瞭解壓縮的命令

unzip -P supercomplexpassword flag.zip

image-20240602204647202

那麼密碼就是,然後解壓

supercomplexpassword

image-20240602204756587

USB

參考:

BUUCTF:USB_buuctfusb-CSDN部落格

010editor開啟key.ftm,發現了zip檔案頭,然後binwalk提取

然後有個key.pcap的流量包

image-20240602205159534

應該就是usb的流量,使用usb流量解析工具,發現了關鍵詞

image-20240602205339756

key{xinan}

然後我就去搞了那個233.rar解壓一下,發現就flag.txt,但是不是真的,然後就開始看佬的wp

這邊我們010editor開啟233.rar,執行一下rar的模板,發現報錯RAR檔案格式學習(瞭解)_rar檔案頭-CSDN部落格

image-20240602205720708

然後應該將第三塊的7A改成74

image-20240602205907299

然後這次解壓就獲得了一個圖片

image-20240602205937011

然後stegsolve換一下圖片通道,在blue0找到一張二維碼

image-20240602210039548

掃描一下得到一個

ci{v3erf_0tygidv2_fc0}

然後結合關鍵詞,看看是什麼加密,直接丟隨波逐流工具箱,找到一串

image-20240602210241897

fa{i3eei_0llgvgn2_sc0}

然後是柵欄密碼解密

image-20240602210358678

flag{vig3ne2e_is_c00l}

[GUET-CTF2019]虛假的壓縮包

參考:

[GUET-CTF2019]虛假的壓縮包 - 跳河離去的魚 - 部落格園 (cnblogs.com)

010editor開啟虛假的壓縮包.zip,發現了其實是偽加密,改一下

image-20240602210931277

解壓得到一個

image-20240602210955611

使用RSA工具計算出5

image-20240603093646550

但是這裡壓縮包密碼是

答案是5

我們010開啟這個圖片看看,發現是png檔案頭,改一下字尾,然後png寬高一把梭

image-20240603093923893

也就是需要和5異或

寫指令碼(我這裡用大佬的)

original = open("亦真亦假",'r').read()
flag = open("flag",'w')
for i in original:
    tmp = int(i,16)^5
    flag.write(hex(tmp)[2:])

然後發現他應該是一個壓縮包50 4b 03 04

image-20240603094513651

開啟發現就是doc

image-20240603094605762

在word資料夾下的document.xml發現flag

image-20240603094704570

flag{_th2_7ru8_2iP_}

[RCTF2019]draw

附件下載下來,是一串gdb程式碼

image-20240603095307655

然後給這一串程式碼複製到網站執行Logo直譯器 (calormen.com)

image-20240603095342956

flag{RCTF_HeyLogo}

[ACTF新生賽2020]明文攻擊

010editor開啟圖片,發現末尾有個壓縮包,只不過檔案頭少了50 4b

image-20240603095739155

我們新建一個16進位制檔案,給這貼上進去,然後加一個50 4B

解壓出來一個flag.txt

image-20240603095940942

因為題目說是明文攻擊,我們看一下crc校驗碼

image-20240603100110692

image-20240603100118164

發現是一樣的,那我們就可以用已知明文攻擊,開啟archpr

選取要破解的壓縮包,明文檔案路徑就是你這個沒密碼的壓縮包,並且裡面的flag.txt與這個加密過後的壓縮包的flag.txt CRC校驗碼相同

image-20240603100238361

然後找到

image-20240603102312124

然後給恢復的壓縮包解壓一下就得到flag

image-20240603102537924

[SWPU2019]Network

參考:

[SWPU2019]Network - 雲千 - 部落格園 (cnblogs.com)

[SWPU2019]Network(TTL隱寫) | (guokeya.github.io)

開啟這個文字,發現一串這個,直接天崩開局,真沒見過

image-20240603102827820

根據所說的是這個TTL隱寫

    IP報文在路由間穿梭的時候每經過一個路由,TTL就會減1,當TTL為0的時候,該報文就會被丟棄。
    TTL所佔的位數是8位,也就是0-255的範圍,但是在大多數情況下通常只需要經過很小的跳數就能完成報文的轉發,
    遠遠比上限255小得多,所以我們可以用TTL值的前兩位來進行傳輸隱藏資料。
    如:須傳送H字元,只需把H字元換成二進位制,每兩位為一組,每次填充到TTL欄位的開頭兩位並把剩下的6位設定為1(xx111111),這樣發4個IP報文即可傳送1個位元組。

然後就是給這些數字轉成二進位制觀察一下

63->00111111
127->01111111
191->10111111
255->11111111

然後發現只有前兩位不同 00 01 10 11,因為四個IP報文就可以傳送1個位元組,所以四個為一組,編寫指令碼

import binascii
f=open("attachment.txt","r")
f2=open("result.txt","wb")
num=''
res=''
for i in f:
    if int(i)==63:
        num+="00"
    if int(i)==127:
        num+="01"
    if int(i)==191:
        num+="10"
    if int(i)==255:
        num+="11"
for j in range(0,len(num),8):
    res += chr(int(num[j:j+8],2))#轉換為字元
res = binascii.unhexlify(res)#unhexlify:從十六進位制字串返回二進位制資料
f2.write(res)

得出來一個壓縮包,其實是偽加密,改一下就行

image-20240603122623485

然後得出一大堆base64,base64套娃,我們寫指令碼

import base64
f = open(r'D:/pythonProject/result/flag.txt','rb').read()
while True:
    f = base64.b64decode(f)
    print(f);

image-20240603124008669

flag{189ff9e5b743ae95f940a6ccc6dbd9ab}