“東華杯”2021年大學(xué)生網(wǎng)絡(luò)安全邀請賽 暨第七屆上海市大學(xué)生網(wǎng)絡(luò)...
checkin

+AGYAbABhAGcAewBkAGgAYgBfADcAdABoAH0-
UTF-7編碼
UTF-7在線解碼站:http://toolswebtop.com/text/process/decode/utf-7
flag{dhb_7th}
project

test.exe附加了很多別的數(shù)據(jù),運行之后發(fā)現(xiàn)生成了一個problem_bak.zip
解壓problem_bak.zip得到一個郵件文件
復(fù)制出來Python簡單處理或者直接使用在線站:https://the-x.cn/zh-cn/base64/
from base64 import *
with open('jpg_base64.txt', 'r') as f:
lines = f.readlines()
base64_data = ''
with open('flag.jpg', 'wb') as f1:
for line in lines:
base64_data += line.strip()
f1.write(b64decode(base64_data))

得到一張丑不拉幾的圖片,嘗試了很多jpg隱寫,最后發(fā)現(xiàn)是OurSecret隱寫
但是沒有密碼,繼續(xù)分析;在郵件里還有一些數(shù)據(jù),一段Base64、一段Quoted-Printable編碼

沒有密碼線索,都是文本,試一下零寬度字符隱寫
https://330k.github.io/misc_tools/unicode_steganography.html


兩段話都隱寫了密碼
flag{f3a5dc36-ad43-d4fa-e75f-ef79e2e28ef3}
JumpJumpTiger

丟進ida64分析,main函數(shù)是個提示
大概就是個這么的意思,根據(jù)奇偶位分?jǐn)?shù)據(jù)
在程序中還發(fā)現(xiàn)了大量字符串
iVB...開頭的很明顯是PNG圖片的base64數(shù)據(jù)開頭,/9j/...開頭的很明顯是JPG的base64數(shù)據(jù)開頭;從0開始奇數(shù)位是PNG數(shù)據(jù),偶數(shù)位是JPG數(shù)據(jù)
另外除了這部分base64數(shù)據(jù)之外,還發(fā)現(xiàn)了夾雜著0的base64數(shù)據(jù)
先把base64數(shù)據(jù)提取出來,數(shù)據(jù)太長了,不便復(fù)制,使用腳本來提取比較方便,Python簡單處理即可
from base64 import *
start_opt = 0x2600
middle_opt = 0x10DF00
end_opt = 0x7D4660
png_data = ''
jpg_data = ''
with open('jump.exe', 'rb') as f:
f.seek(start_opt)
part1_base64 = f.read(middle_opt - start_opt).decode()
for i in range(len(part1_base64)):
if i % 2 == 0:
jpg_data += part1_base64[i]
else:
png_data += part1_base64[i]
with open('flag.jpg', 'wb') as f1:
f1.write(b64decode(jpg_data))
with open('flag.png', 'wb') as f2:
f2.write(b64decode(png_data))
得到兩張圖,但是png的圖片數(shù)據(jù)并不完整;猜測另一部分的png圖片的base64數(shù)據(jù)即為之前參雜0的數(shù)據(jù)
繼續(xù)使用Python簡單處理
from base64 import *
start_opt = 0x2600
middle_opt = 0x10DF00
end_opt = 0x7D4660
png_data = ''
with open('jump.exe', 'rb') as f:
f.seek(start_opt)
part1_base64 = f.read(middle_opt - start_opt).decode()
for i in range(len(part1_base64)):
if i % 2 == 0:
pass
else:
png_data += part1_base64[i]
f.seek(middle_opt)
part2_base64 = f.read(end_opt - middle_opt).decode()
for i1 in range(len(part2_base64)):
if i1 % 2 == 0:
pass
else:
png_data += part2_base64[i1]
with open('flag.png', 'wb') as f2:
f2.write(b64decode(png_data))

盲水印

看不清的話用stegsolve調(diào)整一下
flag{72f73bbe-9193-e59a-c593-1b1cb8f76714}
where_can_find_code

format("Translate the letter J into I");
dpeb{e58ca5e2-2c51-4eef-5f5e-33539364deoa}

wbstego隱寫,無密碼
得到云影密碼
20810842042108421
Python簡單處理轉(zhuǎn)換即可
code = '20810842042108421'
code_list = code.split('0')
alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
text = ''
for nums in code_list:
plus_num = 0
for n in nums:
plus_num += int(n)
text += alphabet[plus_num - 1]
print('[+]: {}'.format(text))
PS C:\Users\Administrator\Downloads> python code.py
[+]: BINGO
接下來就是利用一條這條語句
Translate the letter J into I


http://rumkin.com/tools/cipher/playfair.php

flag{d58af5d2-2a51-4dde-5e5d-33539364cdbf}