TTL題的writeup
第一次打西湖論劍,啥都不懂,被題目虐的很慘,一共就做出來兩道題,但也算有收獲。這里分享一下TTL那道misc題目的writeup,算是給自己點安慰吧。
題目描述
我們截獲了一些IP數據報,發現報文頭中的TTL值特別可疑,懷疑是通信方嵌入了數據到TTL,我們將這些TTL值提取了出來,你能看出什么端倪嗎?
打開題目中的附件是這樣的:
一開始沒看出啥來,感覺像ASCII碼,但是,有好多都大於127了,所以應該不是ASCII碼。
后來隊友跟我說,可以把每個TTL值二進制碼的高兩位(高兩位比特的數在數據傳輸中不容易受影響)拿下來,每4個TTL值湊出一個字節的二進制數來。具體為啥想到這個,他跟我說是之前正好看過一篇講這個的文章。等我找到文章在貼鏈接。
之后就是寫腳本把想法實現了,這里用到了python。
with open('ttl.txt') as f:
lines = f.readlines()
n_num = []
#分析出所有的數
for i in lines:
if i!='\n':
n_num.append(int(i.replace('TTL=','')))
#拿到每個TTL值的高位
rlt = ''
for i in range(0,len(lines)):
tmp = bin(n_num[i])[2:]
tmp = '0'*(8-len(tmp)) + tmp
rlt += tmp[0:2]
#得到最終的結果並存到文件中
rlt2 = ''
for i in range(0,len(rlt),8):
rlt2 += chr(int(rlt[i:i+8],2))
with open('fi.txt','w') as f:
f.write(rlt2.rstrip())
得到的文件中全部都是可打印字符,以FFD8開頭,FFD9結束。所以,是jpeg格式的圖片無疑了。
之后把這些16進制字符粘貼到winhex里並保存為jpeg格式的圖片,得到了一張30KB的殘缺二維碼。30KB,還殘缺!!!一定是夾雜私貨了,於是就搜了下FFD8和FFD9的數量,正好6對。
(用搜索的話只能定位,可以用替換搜索,這樣可以計數)
接着就是把圖片拆出來了,使用binwalk,會分出6張二維碼圖片,用PPT的插圖和對齊的功能拼接一下,得到一個二維碼。
(PPT拼圖真好用)
本以為掃完碼flag就出來了,沒想到還有一層加密,帶秘鑰的,這里我們使用的autokey解密。
之前說的維吉尼亞,不好意思,最開始我們用的維吉尼亞是個錯誤的被flag包裹的字符串,后來用的和他相似的autokey通過的。感謝那位發現錯誤我的博主。
掃碼后的結果。
key:AutomaticKey cipher:fftu{2028mb39927wn1f96o6e12z03j58002p}
使用autokey解開密文:(用了個在線的,可能會慢一點)
http://www.practicalcryptography.com/ciphers/classical-era/autokey/
得到這么個東西:flagabdfdeabee,數字和括號沒處理,自己手動加上就過了。
flag{2028ab39927df1d96e6a12b03e58002e}
參加完這個比賽,感覺除了隱寫能寫點,其他的,真的是欠缺!尤其那個PWN和reverse,得好好努力了。或許我需要一個大師傅來帶帶我,求帶啊!