第一次打西湖論劍,啥都不懂,被題目虐的很慘,一共就作出來兩道題,但也算有收穫。這裏分享一下TTL那道misc題目的writeup,算是給本身點安慰吧。python
咱們截獲了一些IP數據報,發現報文頭中的TTL值特別可疑,懷疑是通訊方嵌入了數據到TTL,咱們將這些TTL值提取了出來,你能看出什麼端倪嗎?app
打開題目中的附件是這樣的:
加密
一開始沒看出啥來,感受像ASCII碼,可是,有好多都大於127了,因此應該不是ASCII碼。code
後來隊友跟我說,能夠把每一個TTL值二進制碼的高兩位(高兩位比特的數在數據傳輸中不容易受影響)拿下來,每4個TTL值湊出一個字節的二進制數來。具體爲啥想到這個,他跟我說是以前正好看過一篇講這個的文章。等我找到文章在貼連接。blog
以後就是寫腳本把想法實現了,這裏用到了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格式的圖片無疑了。
ip
以後把這些16進制字符粘貼到winhex裏並保存爲jpeg格式的圖片,獲得了一張30KB的殘缺二維碼。30KB,還殘缺!!!必定是夾雜私貨了,因而就搜了下FFD8和FFD9的數量,正好6對。
(用搜索的話只能定位,能夠用替換搜索,這樣能夠計數)
ci
接着就是把圖片拆出來了,使用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,得好好努力了。或許我須要一個大師傅來帶帶我,求帶啊!字符串