2021第一屆網刃杯網路安全大賽-藏在s7里的秘密
難度系數:3.0
題目描述:某工廠的安全設備捕獲了攻擊者向PLC中寫入惡意資料的資料包,你能分析出并找到其中隱藏的資料嗎?
解題思路:
下載查看流量包發現無法打開,嘗試對流量包進行修復

分析流量發現存在一個png圖

將圖片匯出并查看發現圖片長度缺失,使用010打開發現提升CRC校驗有問題,疑是需要爆破圖片真實高度,使用網路上的腳本進行爆破
import zlib
import struct
import binascii
file = 'aaaa.png'
fr = open(file,'rb').read()
data = bytearray(fr[12:29])
#crc32key = eval(str(fr[29:33]).replace('\\x','').replace("b'",'0x').replace("'",''))
crc32key = struct.unpack('>I',fr[29:33])[0]&0xffffffff
# print(hex(fr[29:33]))
#data = bytearray(b'\x49\x48\x44\x52\x00\x00\x01\xF4\x00\x00\x01\xF1\x08\x06\x00\x00\x00')
n = 4096
for w in range(n):
width = bytearray(struct.pack('>i', w))
for h in range(n):
height = bytearray(struct.pack('>i', h))
for x in range(4):
data[x+4] = width[x]
data[x+8] = height[x]
#print(data)
crc32result = zlib.crc32(data)
if crc32result == crc32key:
print(crc32key)
print(width,height)
print(data)
newpic = bytearray(fr)
for x in range(4):
newpic[x+16] = width[x]
newpic[x+20] = height[x]
fw = open(file.split('.')[0]+'_cracked'+'.png','wb')
fw.write(newpic)
fw.close
將爆破出的高度修改查看拿到flag

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/299924.html
標籤:其他
上一篇:K-Means演算法實作網頁聚類
