只會做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中的網址,好家伙,太冷門了吧,師傅是怎么找到的

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}
對排版不是很感興趣,所以排版比較混亂,望諒解,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/252175.html
標籤:其他
上一篇:淺談漢諾塔
