山东省“技能兴鲁”职业技能大赛—“铸网2025”山东省工业和互联网CTF竞赛WP
字数 1319 2025-09-23 19:27:38

山东省"技能兴鲁"职业技能大赛—"铸网2025"CTF竞赛技术解析

ICS工业控制系统安全

失窃的工艺

  1. 题目提供了一个test.PCZ文件,需要使用力控软件打开
  2. 解题方法:
    • 将文件后缀名改为.zip
    • 解压后直接搜索flag文本
  3. 找到的flag:flag{D076-4D7E-92AC-A05ACB788292}

工控协议分析

  1. 使用Wireshark打开提供的流量文件进行分析
  2. 解题步骤:
    • 追踪TCP流
    • flag被逐字符隐藏在流量中
  3. 拼凑得到的flag:flag{c93650241853da240f9760531a79cbcf}

Misc杂项

总线流量分析

  1. 题目场景:汽车在试验道路上行驶,测试人员监控车内CAN通信报文
  2. 已知条件:
    • 报文抓取时间间隔为36秒
    • 车速在80km/h左右
    • 车速信息只占用1字节长度
    • 车速信息具备较高优先级
  3. 解题步骤:
    • 打开流量文件按ID分组观察
    • 寻找只有1字节变化的CAN报文
    • 发现ID=0x0000280的CAN报文数据符合条件(数据在0x50左右浮动)
    • 编写脚本计算行驶路程

OTA流量分析

  1. 车机/IOT设备的OTA流程分析:
    • 设备发起请求到服务器(如/api/v1/vehicle/handshake),带上设备信息
    • 服务器生成会话密钥session_key,通过HTTPS或加密通道下发给设备
    • 后续敏感数据(固件包、授权信息)会用session_key进行对称加密(常见AES-CBC/CTR)
    • 设备用session_key解密得到明文,执行升级或获取控制指令

Easypicgame

  1. 使用010editor打开图片
  2. 直接搜索flag文本即可找到flag

Reverse逆向工程

简单的逆向分析

  1. 使用IDA分析二进制文件
  2. 加密逻辑非常简单:
    • 直接将密文与0x5A进行异或操作即可解密
  3. 解题方法:
    • 提取密文
    • 逐字节异或0x5A
    • 得到原始flag

Crypto密码学

EasyAES

  1. 题目加密流程:
    • 先用3字符的k0对flag进行AES-CBC加密得到c0
    • 然后用同样长度的k1对c0连续加密三次得到c3
    • 密钥通过sha256从3字符明文生成
  2. 解题思路:
    • 爆破k1段:
      • 对c3做三次AES-CBC解密
      • 每次解密后进行PKCS7补位校验
      • 当三次解密都成功且补位合法时,说明k1正确,解密结果为c0
    • 爆破k0段:
      • 对c0做一次AES-CBC解密并校验PKCS7补位
      • 验证解密结果是否符合flag的UUID格式
      • 找到匹配的k0即可得到最终flag
  3. 优化思路:
    • 利用多进程或批量处理加速暴力搜索
    • 使用PKCS7补位校验和UUID格式校验作为快速剪枝条件

技术要点总结

  1. 工业控制系统文件分析:

    • 了解常见工业控制软件文件格式
    • 尝试修改扩展名解压分析
  2. CAN总线协议分析:

    • 理解CAN报文结构
    • 识别关键数据字段
    • 掌握车速信息编码方式
  3. OTA安全分析:

    • 理解OTA完整流程
    • 掌握会话密钥交换机制
    • 熟悉AES-CBC/CTR加密模式
  4. 逆向工程基础:

    • 使用IDA进行静态分析
    • 识别简单加密算法
    • 实现解密脚本
  5. AES加密分析:

    • 理解AES-CBC模式
    • 掌握PKCS7填充标准
    • 实现多轮加密的逆向破解
    • 优化暴力破解方法
山东省"技能兴鲁"职业技能大赛—"铸网2025"CTF竞赛技术解析 ICS工业控制系统安全 失窃的工艺 题目提供了一个test.PCZ文件,需要使用力控软件打开 解题方法: 将文件后缀名改为.zip 解压后直接搜索flag文本 找到的flag: flag{D076-4D7E-92AC-A05ACB788292} 工控协议分析 使用Wireshark打开提供的流量文件进行分析 解题步骤: 追踪TCP流 flag被逐字符隐藏在流量中 拼凑得到的flag: flag{c93650241853da240f9760531a79cbcf} Misc杂项 总线流量分析 题目场景:汽车在试验道路上行驶,测试人员监控车内CAN通信报文 已知条件: 报文抓取时间间隔为36秒 车速在80km/h左右 车速信息只占用1字节长度 车速信息具备较高优先级 解题步骤: 打开流量文件按ID分组观察 寻找只有1字节变化的CAN报文 发现ID=0x0000280的CAN报文数据符合条件(数据在0x50左右浮动) 编写脚本计算行驶路程 OTA流量分析 车机/IOT设备的OTA流程分析: 设备发起请求到服务器(如/api/v1/vehicle/handshake),带上设备信息 服务器生成会话密钥session_ key,通过HTTPS或加密通道下发给设备 后续敏感数据(固件包、授权信息)会用session_ key进行对称加密(常见AES-CBC/CTR) 设备用session_ key解密得到明文,执行升级或获取控制指令 Easypicgame 使用010editor打开图片 直接搜索flag文本即可找到flag Reverse逆向工程 简单的逆向分析 使用IDA分析二进制文件 加密逻辑非常简单: 直接将密文与0x5A进行异或操作即可解密 解题方法: 提取密文 逐字节异或0x5A 得到原始flag Crypto密码学 EasyAES 题目加密流程: 先用3字符的k0对flag进行AES-CBC加密得到c0 然后用同样长度的k1对c0连续加密三次得到c3 密钥通过sha256从3字符明文生成 解题思路: 爆破k1段: 对c3做三次AES-CBC解密 每次解密后进行PKCS7补位校验 当三次解密都成功且补位合法时,说明k1正确,解密结果为c0 爆破k0段: 对c0做一次AES-CBC解密并校验PKCS7补位 验证解密结果是否符合flag的UUID格式 找到匹配的k0即可得到最终flag 优化思路: 利用多进程或批量处理加速暴力搜索 使用PKCS7补位校验和UUID格式校验作为快速剪枝条件 技术要点总结 工业控制系统文件分析: 了解常见工业控制软件文件格式 尝试修改扩展名解压分析 CAN总线协议分析: 理解CAN报文结构 识别关键数据字段 掌握车速信息编码方式 OTA安全分析: 理解OTA完整流程 掌握会话密钥交换机制 熟悉AES-CBC/CTR加密模式 逆向工程基础: 使用IDA进行静态分析 识别简单加密算法 实现解密脚本 AES加密分析: 理解AES-CBC模式 掌握PKCS7填充标准 实现多轮加密的逆向破解 优化暴力破解方法