長期更新一波 攻防世界 的雜項題解
這東西主要靠積累吧
攻防世界:https://adworld.xctf.org.cn
因為攻防世界的題目順序經常變化,我也不改序號了,順着之前寫的位置往下寫,推薦使用 ctrl+F 搜索題目名字來定位
在語雀上建立了一個雜項知識庫,收集雜項的知識點:https://www.yuque.com/hxfqg9/tx8y1v/uew75k
新手練習區
1、this_is_flag
題目直接給出了 flag
2、ext3
主要考察 linux 下光盤的掛載
strings 文件名 | grep flag
搜索文件中的可打印字符 grep:全面搜索正則表達式並把行打印出來
使用命令:mount linux ./linux_cd
將 linux(文件名) 掛載到 linux_cd 目錄下,正常訪問 O7avZhikgKgbF 文件夾即可看到 flag 文件,再經過 base64 解碼得到最終 flag
3、give_you_flag
動態圖,一幀一幀看(我用的是愛奇藝萬能播放器),在第50幀有個二維碼,但是少了三個定位圖案,用 PS 補上,掃碼得到 flag
4、pdf
下載下來直接把編輯 PDF,把圖片拿開就可以看到 flag
5、堅持60s
一個 java 小游戲,用 jd-gui 打開,直接搜索:flag,得到,結果需要 base64 解碼
6、如來十三掌
打開 doc,與佛論禪編碼:http://www.keyfc.net/bbs/tools/tudoucode.aspx
解出來先 rot-13,然后 base64
7、gif
白為0,黑為1
01100110011011000110000101100111011110110100011001110101010011100101111101100111011010010100011001111101
二進制轉字符串得到 flag
8、SimpleRAR
打開只有一個 flag.txt,但是用 winhex 打開發現應該還有一個 png 文件,
將這里改成74
再打開就看到了 png 文件,winhex 發現其實是個 gif 將后綴改成 gif
分離出來(我用的是 PS),然后用 Stegsolve 查看
把這個二維碼拼起來,再把定位標志補上掃碼得到 flag
9、掀桌子
網上師傅們給出的解密代碼
string = "c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2" flag = '' for i in range(0,len(string), 2): s = "0x" + string[i] + string[i+1] flag += chr(int(s, 16) - 128) print(flag)
每兩個一組,將16進制轉換為10進制,減去128以后輸出 ascii
10、功夫再高也怕菜刀
下載到一個流量包,有 foremost 分離一下
得到一個壓縮包,里面有 flag 文件,爆破就別想了(太復雜)
分析流量包!!
ctrl+F 搜索字符
選擇第1150個,右鍵,追蹤流 -> TCP 流
把這些保存下來
從 FFD8FF 開始到 FFD9 復制出來
打開 winhex 新建一個文件,把上面的粘貼進去,注意,選擇 hex
可以看出是個 jpg 了
保存后打開圖片
用這個密碼打開壓縮包里的 flag.txt
11、stegano
下載 PDF 在火狐瀏覽器打開,控制台輸入:
document.documentElement.textContent
看一下內容,會有一串
BABA BBB BA BBA ABA AB B AAB ABAA AB B AA BBB BA AAA BBAABB AABA ABAA AB BBA BBBAAA ABBBB BA AAAB ABBBB AAAAA ABBBB BAAA ABAA AAABB BB AAABB AAAAA AAAAA AAAAB BBA AAABB
把“A”換成“.”,把“B”換成“-”,得到:
-.-. --- -. --. .-. .- - ..- .-.. .- - .. --- -. ... --..-- ..-. .-.. .- --. ---... .---- -. ...- .---- ..... .---- -... .-.. ...-- -- ...-- ..... ..... ....- --. ...--
解密摩斯密碼,得到:
CONGRATULATIONSFLAG1NV151BL3M3554G3
真正的 flag 是:flag{1NV151BL3M3554G3}
這里因為格式不對,浪費了幾個金幣查看 writeup,結果 writeup 也沒說格式,還是自己試出來的
2019.8.19:
這題 flag 格式又雙叒叕改了,經過評論區的 @ConvexLens 師傅提醒現在 flag 是:1nv151bl3m3554g3
各位提交的時候不對,大小寫啥的試試
12、base64stego
這個題接觸了一種叫 base64 隱寫的類型
python2 解密腳本:
#coding=utf-8 def get_base64_diff_value(s1, s2): base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' res = 0 for i in xrange(len(s2)): if s1[i] != s2[i]: return abs(base64chars.index(s1[i]) - base64chars.index(s2[i])) return res def solve_stego(): with open('1.txt', 'rb') as f: file_lines = f.readlines() bin_str = '' for line in file_lines: steg_line = line.replace('\n', '') norm_line = line.replace('\n', '').decode('base64').encode('base64').replace('\n', '') diff = get_base64_diff_value(steg_line, norm_line) print diff pads_num = steg_line.count('=') if diff: bin_str += bin(diff)[2:].zfill(pads_num * 2) else: bin_str += '0' * pads_num * 2 print goflag(bin_str) def goflag(bin_str): res_str = '' for i in xrange(0, len(bin_str), 8): res_str += chr(int(bin_str[i:i + 8], 2)) return res_str if __name__ == '__main__': solve_stego()
高手進階區
1、Excaliflag
使用 Stegsolve 在藍色通道為0的時候發現 flag
2、簽到題
base64 -> 凱撒 -> 柵欄
注意根據題目背景,是SSCTF,凱撒的時候看到 ssC 選擇那一個進行柵欄
3、Avatar
下載圖片,用 outguess 解密
outguess -r avatar.jpg -t 1.txt
4、What-is-this
解壓出來的文件直接 foremost 看看是什么
得到兩張圖片
使用 Stegsolve 打開一張圖片,然后選擇 Analyse => Imgae Combiner 選擇另一張,會得到如圖所示效果
5、Training-Stegano-1
圖片直接用文本編輯器打開就看到了。。。
6、easycap
用 wireshark 打開,ctrl + F 搜索字符串,隨便定位一個 右鍵 => 追蹤流 => TCP 就能看到 flag
flag 是直接復制提交上去
7、Test-flag-please-ignore
這道題。。。難道不應該在新手區嘛?
8、Get-the-key.txt
下載的文件解壓出來,用文本編輯器打開,隨便一拖發現疑似 flag 的東西
找了所有的,試了很多都不對,網上搜了一下,然后 binwalk -e 超級多東西,但是第一個 txt 的第一句就是
9、glance-50
一個 GIF,巧的是之前在 freebuf 上看 python 操作圖片的時候這就是一道例題
先用這個代碼把每一張圖片都保存在 yichen 文件夾(文件夾要提前創建好)
from PIL import Image savepath = "yichen\\" path = '.\\' im = Image.open('2.gif') try: im.save(savepath+'2{:d}.png'.format(im.tell())) while True: im.seek(im.tell()+1) im.save(savepath+'2{:d}.png'.format(im.tell())) except: pass
在用這個代碼把保存的圖片拼接起來成為 yichen.png,並打開展示出來
# coding:utf-8 # author:Reborn from PIL import Image path = "yichen\\" save_path = '.\\' im = Image.new('RGBA',(2*201,600)) imagefile = [] width = 0 for i in range(201): imagefile.append(Image.open(path+'2'+str(i)+'.png')) for image in imagefile: im.paste(image,(width,0,2+width,600)) width = width +2 im.save(save_path+'yichen.png') im.show()
省得你再去敲了:TWCTF{Bliss by Charles O'Rear}
10、4-2
字頻分析,在線解密網站:https://quipqiup.com/
11、misc1
跟之前新手區那個 掀桌子 沒啥區別
12、embarrass
在 linux 下直接 strings 命令
strings misc_02.pcaong | grep flag
13、肥宅快樂題
使用軟件:PotPlayer 查看 swf 文件,拖到后面,大概這個位置
與 NPC 對話,得到一串東西,其實是 base64 解碼出來:SYC{F3iZhai_ku4ile_T111}
14、小小的PDF
直接 foremost,圖片就分離出來了,氣死我了 WPS 不充錢不讓圖片另存為,簡直是鑽錢眼里了
15、hit-the-core
長記性了,以后用 strings 命令不要總是跟着 | grep flag,不然很多東西會被忽略掉
發現下面這一串字符串,發現前面幾個大寫字母組成的是 ALEXCTF,根據這個規律,寫出腳本
flag0='cvqAeqacLtqazEigwiXobxrCrtuiTzahfFreqc{bnjrKwgk83kgd43j85ePgb_e_rwqr7fvbmHjklo3tews_hmkogooyf0vbnk0ii87Drfgh_n kiwutfb0ghk9ro987k5tfb_hjiouo087ptfcv}' flag="" for i in range(3,len(flag0),5): flag+=flag0[i] print(flag)
#參考:https://blog.csdn.net/zz_Caleb/article/details/89533039
16、Cephalopod
用 strings 發現 flag.png
追蹤TCP流,把數據按照原始數據復制出來
粘貼到 winhex 里面,按照 ASCII Hex 的形式
把前面沒用的都刪掉,留到 png 文件頭
打開圖片發現 flag
HITB{95700d8aefdc1648b90a92f3a8460a2c}
17、pure_color
用 Stegsolve 打開,在 blue = 0 的時候看到 flag
flag{true_steganographers_doesnt_need_any_tools}
18、2-1
打開圖片會發現提示格式錯誤,修改文件頭以后還是打不開,根據大佬的說法:CRC32校驗錯誤了,寫腳本跑出來
把寬度那個地方改成這樣
base64÷4
base64÷4=base16,直接 16 進制轉字符串就可以
can_has_stdio?
打開是一個五角星,但是很明顯是 brainfuck 把空格和換行去掉之后轉換一下就可以
János-the-Ripper
解壓出來,后綴改成 .zip 暴力破解得到 fish,打開得到 flag
Banmabanma
在線掃條形碼 https://online-barcode-reader.inliteresearch.com/
Hear-with-your-Eyes
用 AUdacity 打開,看一下頻譜圖 e5353bb7b57578bd4da1c898a8e2d767
神奇的Modbus
輸入 modbus 過濾一下,隨便選一個追蹤 TCP 流
快樂游戲題
把小貓圍起來,圍一個大點的圈就行
MISCall
按照壓縮包打開
然后 git 操作一下
Reverse-it
用腳本:https://blog.csdn.net/YUK_103/article/details/103842782
Aesop_secret
ps 把 gif 每一幀拼接起來是:iscc
在 gif 末尾看到疑似 base64,實際是 AES,密碼是 ISCC,兩次解密出結果
https://www.sojson.com/encrypt_aes.html
倒立屋
zsteg 牛逼!!
另外因為是倒立屋,所以內容要反過來 flag{9102_cCsI}
a_good_idea
用 foremost 分離一下出來個壓縮包,里面有兩張圖
Beyond_Compare 圖片比較一下
2017_Dating_in_Singapore
把給的數字用短線分割
然后畫出來,額根據比賽名可以知道第四個是 B
simple_transfer
直接 foremost 分理出 pdf,然后軟件打開挪一下黑色的底色就能看出來了
Erik-Baleog-and-Olaf
winhex 打開之后,最下面藏了個網址,訪問拿到一張圖片。額好吧,走偏了
未完待續...