请选择 进入手机版 | 继续访问电脑版

石家庄老站长

点击联系客服
客服QQ: 客服微信:
 找回密码
 立即注册
查看: 3|回复: 0

2021年第一届网络刀片杯网络安全大会-隐藏在S7中的秘密

[复制链接]

1

主题

1

帖子

-7

积分

限制会员

积分
-7
发表于 2021-9-14 07:27:03 | 显示全部楼层 |阅读模式
2021第一届网刃杯网络安全大赛-藏在s7里的秘密

难度系数:3.0

标题说明:一家工厂的安全设备捕获了攻击者向PLC写入恶意数据的数据包。能分析和找到隐藏的数据吗?

解题思路:

无法打开下载流量数据包视图。尝试恢复流量数据包





流量分析结果有png图表





导出图片,确认照片长度缺失,使用010上传CRC验证时出现问题。怀疑要炸毁图片的实际高度,并使用网络上的脚本进行爆破。

Import  zlib

Import结构

Import  binascii

File='aaaa.png  '

Fr=open(文件,“Rb”)。read()

DATA=Bytearray(FR[123360]
ber">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

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|无图版|手机版|小黑屋|石家庄@IT精英团

GMT+8, 2021-9-22 00:32 , Processed in 0.156000 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2021 Comsenz Inc.

快速回复 返回顶部 返回列表