[MRCTF2020]小O的考研複試
flag = 0
for i in range(19260817):
flag = (flag * 10 + 2) % 1000000007
print(flag)
flag{577302567}
真的很雜
參考:
BUUCTF 真的很雜_buuctf class.dex-CSDN部落格
BUUCTF-真的很雜 - 「配槍朱麗葉。」 (hatenablog.com)
沒啥思路,binwalk直接提取,發現好像是安卓的東西
然後是安卓逆向,我們下載工具,反編譯Releases · skylot/jadx (github.com)
然後我們給classes.dex
拖進去反編譯
找到flag,然後爆破這個a和b,前一個字母,後一個數字(我也不知道怎麼爆破)
flag{25f991b27fcdc2f7a82a2b34386e81c4}
[GKCTF 2021]FireFox Forensics
參考:[瀏覽器取證 - GKCTF 2021]FireFox Forensics - 《CTF 刷題總結》 - 極客文件 (geekdaxue.co)
根據題目應該是瀏覽器取證,第一次接觸,下載指令碼lclevy/firepwd: firepwd.py, an open source tool to decrypt Mozilla protected passwords (github.com)
然後給這兩個附件放到這個指令碼的目錄下
然後開啟終端
python ./firepwd.py logins.json
GKCTF{9cf21dda-34be-4f6c-a629-9c4647981ad7}
[RCTF2019]disk
參考:[記憶體取證 - RCTF2019]disk(BUUCTF) - 《CTF 刷題總結》 - 極客文件 (geekdaxue.co)
之前遇見過vmdk
這個檔案,使用7z
解壓出來,得到一個0.fat
然後搜了搜fat
就是磁碟
然後這題少了提示說是,我們應該去下載VeraCrypt
這個 工具
然後我們先在010editor裡面開啟這個0.fat
找到一段flag
rctf{unseCure_quick_form4t_vo1ume
然後我們把0.fat
掛載起來,這裡需要輸入密碼,密碼就是rctf
然後開啟發現
RCTF2019
這是一個容易忽視的點。那就是在掛載的時候,不同的密碼可以進入不同的檔案系統,所以我們需要重新掛載,然後掛載完打不開,開啟就必須要你格式,然後這裡就只能用winhex
去開啟這磁碟,010editor
不行
最後的flag
flag{unseCure_quick_form4t_vo1ume_and_corrupted_1nner_v0lume}
[MRCTF2020]搖滾DJ(建議大聲播放
我擦,聽了一下附件,腦子爆掉了,聽起來是之前做過SSTV
,用kali
開啟qsstv
,直接命令列輸入,沒安裝的先去搜一下怎麼安裝的
主要記得這裡需要設定成from file
然後給音訊丟進去,就出圖片了
flag{r3ce1ved_4n_img}
[GWCTF2019]huyao
下載下來是兩張一樣的圖片
先試試盲水印,發現不對
但是在這裡,B神的工具PuzzleSolver
還有頻域盲水印,牛逼壞了,直接解出來
得到flag
flag{BWM_1s_c00l}
[GUET-CTF2019]520的暗示
參考:BUU MISC 刷題記錄(三) - 雲千 - 部落格園 (cnblogs.com)
我們瞭解到是微信dat檔案解密,網上找了指令碼bugku:FileStoragedat;微信dat檔案的解密_filestorage解密-CSDN部落格
#微信dat檔案解密
import base64
import struct,binascii
def getDat():
dic={0xFFD8:"JPG",0x8950:"PNG",0x424D:"BMP",0x4749:"GIF",0x504B:"ZIP",0x5261:"RAR",0x4156:"AVI"}
li=list(dic.keys())
with open("photo.dat","rb")as f:
data=f.read(2)
data=str(binascii.b2a_hex(data))[2:-1]
data=int(data,16)
for i in li:
j=hex(i ^data)
if(j[2:4]==j[4:6]):
key=j[0:4]
print("key:",key)
tail=dic[i]
print("檔案格式為:",tail)
break
f.seek(0,0)
with open("result."+tail,'wb')as out:
for now in f:
for nowByte in now:
by=nowByte^int(key,16)
out.write(bytes([by]))
#主函式
if __name__ == '__main__':
print("/*Begin*\\")
getDat()
然後就得到一個jpg
的圖片
然後根據WP所說去找基站
最後flag就是
flag{桂林電子科技大學花江校區}
[XMAN2018排位賽]file
參考:
[BUUCTF:XMAN2018排位賽]file-CSDN部落格
先用volatility
分析一下,沒有分析出來
然後他是linux的一個映象
我們先建立一個目錄,然後給他掛載起來,然後去到那個目錄檢視一下
這裡有個檔名字是lost+found
,暗示我們找回失掉的檔案,然後我們就可以取消掛載了umount /mnt/test
然後我們這裡需要用到extundelete
這個工具,我們可以先安裝一下
sudo apt install extundelete
安裝完畢後,我們恢復所有檔案
extundelete attachment.img --restore-all
然後同級目錄下會生成一個資料夾,裡面有被恢復的檔案
flag{fugly_cats_need_luv_2}
我愛Linux
然後題目說linux
,我拖到虛擬機器看看exiftool,cat,file
什麼的都沒得到什麼有用的資訊
我們010editor
開啟檔案,發現了 FF D9
也就是jpg
檔案尾部,然後後面跟了一大堆不知道什麼的資料
然後我們給他提取出來
然後我們反序列化一下
import pickle
fp = open("1","rb+") ''' 開啟序列化檔案 '''
fw = open('pickle.txt', 'w') ''' 開啟儲存檔案 '''
a=pickle.load(fp) ''' 反序列化檔案編譯 '''
pickle=str(a) ''' 轉換成字串要不然不能儲存 '''
fw.write( pickle ) ''' 寫入檔案 '''
fw.close() ''' 關閉檔案 '''
fp.close() ''' 關閉檔案 '''
得到座標值
然後再轉換
fw = open("pickle.txt","r")
text=fw.read( )
i=0
a=0
while i<len(text)+1:
if(text[i]==']'):
print('\n')
a=0
elif(text[i]=='('):
if(text[i+2]==','):
b=text[i+1]
d=text[i+1]
b=int(b)-int(a)
c=1
while c<b:
print(" ", end="")
c += 1
print(text[i+5], end="")
a=int(d)
else:
b=text[i+1]+text[i+2]
d=text[i+1]+text[i+2]
b=int(b)-int(a)
c=1
while c<b:
print(" ", end="")
c += 1
print(text[i+6], end="")
a=int(d)
i +=1
flag{a273fdedf3d746e97db9086ebbb195d6}
[SCTF2019]Ready_Player_One
往上面衝過去就有
flag{You_Are_The_Ready_Player_One!!!For_Sure!!!}