当前位置:首页 » 《资源分享》 » 正文

2021第一届网刃杯网络安全大赛-藏在s7里的秘密_夜白君的博客

24 人参与  2021年10月19日 17:23  分类 : 《资源分享》  评论

点击全文阅读


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


点击全文阅读


本文链接:http://zhangshiyu.com/post/30025.html

爆破  发现  流量  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1