-
蜘蛛俠啊
-
安恆杯misc
- linux tshark identity 部分指令
- 附件下載 https://pan.baidu.com/s/1uo0GFufTjMqR8rtBzp5PlQ 密碼 2cq5
首先打開附件pcap包 茫茫多的icmp包 稍微看一下似乎每個包內容都不太一樣
但是 $$START$$ 似乎暗示了什么
看看最后一個ICMP包:
基本可以判定這是傳遞了一個文件 因此我們的思路就是把這個文件提取出來
linux 的 tshark 命令可以實現這個功能 具體的參數可以度娘學習下
將 hex 轉為 ascii 碼 發現內容有冗余 跑個腳本冷靜一下
1 a=open('1.txt') 2 f=open('2.txt','w') 3 i=0 4 while i != 72156: 5 b=a.readline() 6 if i%4==0: 7 f.write(f'{b}') 8 i+=1 9 f.close()
跑完之后發現使用base64進行了加密 再來個腳本
1 import base64 2 lines = open('2.txt','rb').readlines() 3 flie = open('file','wb') 4 result = "" 5 for line in lines: 6 flie.write(base64.b64decode(line.strip()))
文件最終是以zip格式生成的 解壓后得到蜘蛛俠的特寫gif
gif幀播放的很詭異 使用linux的 identity 命令查看一下
絕大多數幀播放時間都是20 或者50毫秒 將20看做0 50看做1
轉化為二進制 再解碼之后:
將這個字符串md5后即可提交flag
-
md5
-
強網杯web簽到
- 題目環境 http://39.107.33.96:10000/
題目雖說是簽到題 難度卻絲毫不簽到 而且從這道題可以學到不少哈希函數的姿勢
- 第一部分
題目邏輯:
應對方案:php 0e開頭的數字會當做科學計數法解析 因此只要傳兩組md5值開頭為0e的即可
參考網站:https://www.cnblogs.com/Primzahl/p/6018158.html
- 第二部分
題目邏輯:
php為了針對0e錯誤 專門定義了=== 系列操作符 意思是兩參數類型和值都相同才返回真 !== 是指兩個參數的類型和值都相同時才返回假
因此這一問的意思是要構建兩個參數 使得他們類型或者值不相同 但哈希值相同
應對方案:使用burpsuite 傳兩個值不相同的數組即可(php的md5函數如果參數不是字符串則返回一個null 而null===null)
- 第三部分
題目邏輯:
這下傳數組大法使不了了 php這次將兩個參數強行轉成string
度娘了一個生成相同md5值的軟件fastcoll
檢驗下生成的兩個文件
將兩個文件url編碼后上傳到服務器即可得到flag
1 #編碼的python腳本 2 from urllib import parse 3 result = parse.quote(open('3.txt','rb').read()) 4 print(result)
txt文件只哈希文件內容 不一樣的內容哈希值基本不可能一樣 fastcoll造出來的文件只能碰撞單一哈希函數(兩文件其他的哈希值均不相同)
fastcoll產生的兩個txt文件是加上文件頭尾之后恰好哈希值相同,所以去除掉文件頭尾(只哈希內容)哈希值就不會相同