2018 強網杯 安恆杯 部分write up


  • 蜘蛛俠啊 

  • 安恆杯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文件是加上文件頭尾之后恰好哈希值相同,所以去除掉文件頭尾(只哈希內容)哈希值就不會相同
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM