2021第一届网刃杯网络安全大赛-藏在s7里的秘密

4 篇文章 1 订阅

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
在这里插入图片描述

  • 1
    点赞
  • 1
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 1024 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值