比賽介紹
安恆月賽 DASCTF 7月賽
這次太慘了,都做只做了2個,哎,我覺得還需要鍛煉,加油。
拿到文件使用7z這個壓縮包軟件,直接能看到這個flag,在這里,可是需要解壓密碼
我就開始分析一下這個給的素材
在圖片紅色通道看到png的格式
點擊這個Save Bin 保存一個圖片文件
知道了密碼
////1258//@#
然后直接在這個7z軟件中打開這個txt
Ao(mgHXo,o0fV’I2J"^%3&**H@q.MQ1,V%$1GCdB0P"X%0RW
解碼一下
flag{d9518636e448108cc90258c30800dbb0}
PS:這題難點,我覺得前期我被一個網站給坑害了,請各位師傅擦亮眼睛這個工具箱有毒:http://www.atoolbox.net/
我在這里推薦,一個師傅推薦的http://ctf.ssleye.com/
要不是自己戰隊的師傅說出了問題,我還沒感覺到,請各位師傅躲避一下坑!。
這題目,拿到手就是一個gif大致看一下都是只有一點點的二維碼
使用腳本切割一下:
from PIL import Image import os gifFileName = 'QrJoker.gif' #使用Image模塊的open()方法打開gif動態圖像時,默認是第一幀 im = Image.open(gifFileName) pngDir = gifFileName[:-4] #創建存放每幀圖片的文件夾 os.mkdir(pngDir) try: while True: #保存當前幀圖片 current = im.tell() im.save(pngDir+'/'+str(current)+'.png') #獲取下一幀圖片 im.seek(current+1) except EOFError: pass
然后百度一下,看來一下說明,推薦一首很方便理解二維碼的網址:https://merricx.github.io/qrazybox/
我們首先數一下有多少格子
這個高是420 一個格子20 420/20=21
得出是21*21格子然后開始操作
按照這個來回繪制
這里誇一下谷歌翻譯,讓我這個學渣看得懂,點擊提取信息
當時研究了很久,現在來解釋一下點擊這個
在當中選擇這個模式,就可以填充了
就看到了這個二維碼給的數值,由於數值過多,截圖也多
比賽結束我也沒做好,比賽結束之后用一個小時,眼瞎了N次,最后終於獲得了
%56%6A%49%77%65%45%35%48%52%6B%64%69%4D%33%42%72%55%6A%4E%53%55%46%6C%58%4D%54%52%6A%4D%57%52%79%57%6B%5A%61%54%31%5A%55%52%6C%5A%5A%56%57%51%30%56%32%31%57%63%6B%31%45%52%6C%56%4E%56%6B%70%78%56%47%78%56%4E%56%4A%58%53%6B%68%68%52%54%6C%58%54%56%5A%56%64%31%59%79%4D%58%64%69%4D%6B%5A%79%54%6C%52%61%55%6C%64%49%51%6D%46%57%61%32%52%50%54%6C%5A%52%65%46%6F%7A%5A%44%46%56%56%44%41%35
解碼一下
VjIweE5HRkdiM3BrUjNSUFlXMTRjMWRyWkZaT1ZURlZZVWQ0V21Wck1ERlVNVkpxVGxVNVJXSkhhRTlXTVZVd1YyMXdiMkZyTlRaUldIQmFWa2RPTlZReFozZFFVVDA5
base64
V20xNGFGb3pkR3RPYW14c1drZFZOVTFVYUd4WmVrMDFUMVJqTlU5RWJHaE9WMVUwV21wb2FrNTZRWHBaVkdONVQxZ3dQUT09
base64
Wm14aFozdGtOamxsWkdVNU1UaGxZek01T1RjNU9EbGhOV1U0Wmpoak56QXpZVGN5T1gwPQ==
base64
ZmxhZ3tkNjllZGU5MThlYzM5OTc5ODlhNWU4ZjhjNzAzYTcyOX0=
base64
flag{d69ede918ec3997989a5e8f8c703a729}
這道題目因為比賽結束之后才做出來,所以我不確定答案是不是對的,我覺得應該對的吧太慘了我老年人手速嗚嗚嗚嗚