2021第一届网刃杯网络安全大赛-藏在s7里的秘密 难度系数:3.0
题目描述:某工厂的安全设备捕获了攻击者向PLC中写入恶意数据的数据包,你能分析出并找到其中隐藏的数据吗?
解题思路: 下载查看流量包发现无法打开,尝试对流量包进行修复
文章图片
分析流量发现存在一个png图
文章图片
将图片导出并查看发现图片长度缺失,使用010打开发现提升CRC校验有问题,疑是需要爆破图片真实高度,使用网络上的脚本进行爆破
import zlib
import struct
importbinasciifile = 'aaaa.png'
fr = open(file,'rb').read()
data = https://www.it610.com/article/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 = https://www.it610.com/article/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
【网络安全|2021第一届网刃杯网络安全大赛-藏在s7里的秘密】将爆破出的高度修改查看拿到flag
文章图片
推荐阅读
- 网络安全|2021第一届网刃杯网络安全大赛-baby-usb
- 网络安全|2021第一届网刃杯网络安全大赛-签到题
- 算法|010 python数据结构与算法(算法概论;时间复杂度)
- ctf|2021年第一届网刃杯WP misc4解+协议2解
- 服务器|闲置安卓手机改造linux服务器
- 「Python」集合常见增删查方法
- 腾讯安全威胁情报中心TIX产品发布 助力企业掌握安全防御主动权
- 编程进阶(这些 Python 常用技巧真棒)
- python 包之 blinker 信号库教程