CTFshow——DJBCTF MISC(2021年大吉杯)

只會做MISC的小菜雞來寫一下WP,分享一下解題過程(都是大師傅萌帶dd見的世面)
狸題就狸譜,看都沒看,後來發現看了也看不懂
在這裏插入圖片描述

十八般兵器

感謝@i_kei師傅供題
刀、槍、劍、戟、斧、鉞、鉤、叉、鞭、鐗、錘、戈、钂、棍、槊、棒、矛、耙
hint1:JPHS
hint2:用Notepad++打開試試?
hint3:前十種兵器對應10進制,後八種對應8進制
hint4:壓縮包密碼在圖片頭裏(話說這個hint應該上錯題了吧)




下載附件得到rar,添加一下rar後綴打開,需要密碼,備註欄寫着2021牛年大吉,嘗試當做密碼解壓,解壓成功。
解壓得到18兵器圖
在這裏插入圖片描述根據hint1可以知道這個是JPHS隱寫,這裏要用JPHS05來查看,以棒爲例,打開圖片後點擊seek,然後選擇保存地址
在這裏插入圖片描述這裏出題人陰了一手,但是細心還是能發現的。

將18個兵器後面藏的數字一次寫下來,並且按照題目給的順序排列。再加上提示說前10個是10進制,後8個是8進制,可以得到兩組數字:




1361 4399 9223 1635 2581 7639 7978 5870 0963 935 30440 53720 46055 62766 10613 34635 37242 30575
兩組分別合併 得到
136143999223163525817639797858700963935
3044053720460556276610613346353724230575


分別轉16進制轉文本得到
flag{CTFshow_10_
bA_Ban_b1ng_Q1}
合起來flag{CTFshow_10_bA_Ban_b1ng_Q1}


請問大吉杯的簽到是在這裏籤嗎

flag爲全部小寫字母,沒有空格
@感謝cheyenne師傅供題

這道題簡單到離譜,但是想複雜了導致中午才做起
下載附件,得到一張二維碼,掃碼得到

請問DJB CTF比賽的簽到處在什麼地方

嘗試foremost分解,發現分解出壓縮包,裏面還有一個二維碼
如此套娃,一共分解出3張二維碼,加上第一張一共4張,後三張內容分別是

2:還要往前走……是不是在這個路口轉彎呢?
3:好像沒有岔路了,一直往前走試試看
4:咦,這是死衚衕,是不是哪裏走錯路了

通過分析可知,第二張二維碼提示我們停下來找別的方法。用萬能(bushi)的stegsolve查看一下通道,發現有LSB隱寫,但是無法掃碼
由於是LSB隱寫,加上stegsolve可以隨機顏色的特性,可以很輕易的發現:
在這裏插入圖片描述
這明顯是豬圈密碼
在這裏插入圖片描述
對照解碼得到flag:
flag{dajiadoaidjb}





牛年大吉

題目下載 藍奏雲下載地址:https://wws.lanzous.com/i1Ac0jybrvc 百度雲下載地址: https://pan.baidu.com/s/14EXw7U4w0Am0oP_xRXfbqQ 提取碼:ns2k
感謝i_kei師傅供題
hint:不要格式化喲,看看引導扇區是不是丟東西了

這道題幾乎都是非預期解,但是很多人都卡在了密碼那塊,其實就是因爲提示的位置錯了,第一題的hint4應該是這道題的hint。

下載附件,得到一個壓縮包,解壓得到一個vhd磁盤
直接扔進winhex取證得到!lag.7z和一張圖片
(其實出題人本意是叫大家修好引導扇區)

這裏我拿爆破軟件爆出來密碼是00,但是解壓發現密碼錯誤,結合hint2,解壓密碼在圖片頭裏,看看圖片頭呢

並沒有發現什麼,最後才知道密碼竟然是png文件頭:89504E47
我直接好傢伙。
解壓得到flag

flag{CTFshow_The_Year_of_the_Ox}





拼圖v2.0
沒啥好說的,動態flag也抄不到,手擼一個小時20分鐘(雖然有不止5個人因爲忘記續環境導致環境過期哈哈哈哈哈哈哈哈哈哈哈)
最後的截圖我只截了這個
在這裏插入圖片描述
flag{339b8654-e00a-44a8-95dd-76e736-e16c6a}



碑寺六十四卦

這是從一處寺廟遺址中得到的碑文拓片,你能從中發現什麼嗎? https://ctfshow.lanzous.com/iSFN4kn5jna
感謝@cheyenne師傅供題
hint1:爲什麼碑文上空白的地方,拓片上卻是黑黑一片呢?
hint2:如果說每個方塊對應一個字符,可是替換表在哪裏?


我只能說,這道題腦洞,好大大大大,和bugku的貝氏六十四卦一樣大!
首先得到一張卦圖,這裏我在網上找了原圖發現出題人將圖片反了色,但是當時還沒意識到什麼。直到查看grey bits發現
在這裏插入圖片描述
但是並沒有發現什麼
在這裏插入圖片描述
難道路走錯了?
反覆推敲提示,猜測可能是需要將顏色反色再查看
在這裏插入圖片描述
保存此通道,再查看最低位,發現PNG文件頭







在這裏插入圖片描述
趕緊save bin下來看看

去掉開頭4位
在這裏插入圖片描述
發現圖片是這樣的
在這裏插入圖片描述
看着眼疼,用PS放大看
在這裏插入圖片描述
誒?我尋思着這和卦不是對應的嗎,然後卦上有數字,我就照着數字抄了下來





5 37 26 32 8 44
11 30 53 27 39 34
51 3 52 46 18 33
46 40 7 56 40


然後想着是base64,去對照一下
在這裏插入圖片描述
果不其然,從左往右從上往下解得:
FlagIsLe1bnizD0uShuoH4o
所以flag是flag{Le1bnizD0uShuoH4o}



這種方法其實是最慢最笨的方法,還有一種很快的方法但是我大意了弄反了順序就沒找到。

拿第一個爲例

如果將白看成0,黑看成1.從上往下可以發現是101000,如果對照卦圖知道了這一位是5,很容易發現如果將101000反過來當做000101就是5,將前面的也這樣做發現從下往上讀的二進制轉換成10進制正好就是我們讀出來的數字。所以就很容易得到所有的數字,最後得到flag。

AA86

在一臺舊電腦上(大約在16位操作系統還能跑的年代)發現了這個文件,挖掘它的祕密
感謝@ThTsOd師傅供題

附件去官網拿吧
首先保存附件
根據題目描述,16位能跑的年代、一臺舊電腦,可以推斷要去找一臺虛擬機來測試。
搜索引擎稍微搜一下可以發現對應的是DOS系統,上google搜關鍵字"AA86 DOS"可以發現第2個鏈接打開後就看到我們題的那種類型了。
在這裏插入圖片描述尤其這句話
在這裏插入圖片描述
繼續搜索發現,DOS系統中可以執行.bat .com
這裏使用MSDOS來嘗試
虛擬機安裝一個MSDOS7.1,並且將我們得到的附件分別改成.bat和.com放入MSDOS中(怎麼放自行百度)
分別運行可以發現.com就是我們要找的flag
在這裏插入圖片描述
最後得到flag{https://utf-8.jp/public/sas/index.html}










訪問一下flag中的網址,好傢伙,太冷門了吧,師傅是怎麼找到的

![在這裏插入圖片描述](https://img-blog.csdnimg.cn/20210124101643756.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyODgwNzE5,size_16,color_FFFFFF,t_70
色圖生成器

歡迎使用色圖生成器
已獲取flag,正在爲您生成色圖……
色圖生成完畢,準備傳輸
正在傳輸色圖……
ERROR! 檢測到屏蔽系統,傳輸被中斷
準備爲色圖打碼
正在生成馬賽克……
打碼完成,準備添加冗餘數據……
添加完成,正在打包……
打包完成,準備傳輸……
傳輸完成,請點擊下方鏈接下載您的色圖
感謝@cheyenne師傅供題
hint1:顏色很重要,但github更重要
hint2:第一步圖片很重要,txt不重要
hint3:看一看馬賽克部分的RGB值,有沒有想到什麼呢













下載附件,拿到一個
color.txt和setu.png
根據提示應該先看馬賽克的RGB值,查看使用腳本來看一下

from PIL import Image
im = Image.open(‘setu.png’)
pix = im.load()
width = im.size[0]
height = im.size[1]
demo=open(‘rgb1.txt’,‘wb+’)
for y in range(height):
for x in range(width):
r, g, b = pix[x, y]
rgb=r,g,b
demo.write(str(rgb)+"\n")









用notepad++打開,找到第一次出現“馬賽克”的地方
在這裏插入圖片描述
看起來像是ASCII,轉ASCII發現82對應R、97對應a、114對應r、33對應!
綜合來看,是Rar! 說明出題人將Rar文件隱藏到了圖片中,經過計算可以得到“馬賽克”的範圍
high=(80,420) wide=(50,995)
然後想辦法提取出來,可以發現,RGB中必定有一個是0,所以可以(R+G+B)/2的方式來提取。




from PIL import Image
im=Image.open(‘setu.png’)
fh=open(‘1.txt’,‘w’)
i=0
for h in range(80,420,20):
for w in range(50,995,5):
color=im.getpixel((w,h))
t=(color[0]+color[1]+color[2])/2
print t
i=i+1
fh.close()









這樣就可以得到之前說的rar了
打開rar
在這裏插入圖片描述右邊暫時還看不懂,解壓png之後查看文件尾,發現末尾有PK頭foremost分解得到加密的壓縮包

在這裏插入圖片描述根據hint1和之前png的名字 可以到github上面搜Cloakify,是一種加密
在這裏插入圖片描述發現正好可以解釋壓縮包裏面的單詞了
將壓縮包裏面的單詞添加到txt裏,然後去解密

在這裏插入圖片描述可以得到壓縮包密碼D3arD4La0P1e45eD4iDa1Wo

解壓得到pyc文件 在線的網站反編譯發現編譯不完整,這裏在kali中使用
uncompyle6
具體指令是

uncompyle6 setushengchengqi.pyc > test.py

得到py文件
然後因爲才大一沒有怎麼學python,看了正則發現就是匹配之前圖片的flag{D???},但是需要本地爆破,需要在後面寫一個解密腳本。這裏我找了一位大師傅幫忙寫了一下,因爲我實在不會寫。在這裏感謝一下南方師傅

import re
import hashlib
list = [‘139’, ‘102’, ‘162’, ‘24’, ‘85’, ‘57’, ‘160’, ‘37’, ‘239’, ‘200’, ‘154’, ‘30’]
for a in range(48,123):
for b in range(48,123):
for c in range(48,123):
for d in range(48,123):
flag = ‘flag{D’ + chr(a) + chr(b) + chr© + chr(d) + ‘}’
if re.fullmatch(’^flag{[A-Z][0-9a-zA-Z]{4}}$’, flag):
m = hashlib.md5()
m.update(flag.encode(‘ascii’))
m = m.hexdigest()
j = 0
for i in range(0,24,2):
p = int(list[j])
if int(m[i:i+2], 16) - p > -5 and int(m[i:i+2], 16) - p < 5:
j = j + 1
continue
elif i == 22:
print(flag)
break
else:
break





















原理:
有四個大色塊 RGB每個都是加密的 所以有4*3=12的加密數據
分別對應RGB值。
在這裏插入圖片描述


得到flag{D4n1U}

對排版不是很感興趣,所以排版比較混亂,望諒解。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章