2025年工业信息安全技能大赛 石油行业锦标赛writeup
字数 2430 2025-09-23 19:27:46

2025年工业信息安全技能大赛石油行业锦标赛Writeup教学文档

赛题一:透明之钥

Flag
flag{alpha_steghide_v2}

检测工具
Python + PIL库

步骤描述

  1. 使用Python的PIL库打开图像文件(几何图形.png)。
  2. 检查图像是否包含Alpha通道(RGBA或LA模式)。
  3. 提取Alpha通道数据,获取每个像素的透明度值(0-255)。
  4. 分析透明度值序列:
    • 直接尝试将Alpha值序列解码为ASCII字符串。
    • 若失败,输出前100个Alpha值寻找模式(如"flag{"对应的ASCII码序列)。
  5. 发现Alpha通道中隐藏的文本信息,直接提取Flag。

关键点

  • Alpha通道中存储了隐藏信息,完全透明(0)和完全不透明(255)可能被过滤,但本题中半透明值(1-254)直接构成Flag的ASCII码。
  • 无需复杂处理,直接读取Alpha值并转换为文本即可。

赛题二:五彩斑斓黑

Flag
flag{hidden_in_lsb}

检测工具
随波逐流(Stegsolve或类似LSB工具)

步骤描述

  1. 使用LSB(最低有效位)隐写分析工具(如Stegsolve)打开图像。
  2. 切换不同颜色通道和位平面,观察是否有隐藏信息。
  3. 在LSB层发现隐藏文本,直接提取Flag。

关键点

  • LSB隐写常见于图像隐写,需逐位分析RGB或Alpha通道的最低有效位。
  • 工具自动化提取,无需手动解码。

赛题三:打不开的压缩包

Flag
flag{jd9jc810123}

检测工具
010 Editor + 7-Zip

步骤描述

  1. 使用010 Editor打开压缩包,分析文件头。
  2. 发现两个几乎同时创建的文件,其中一个加密一个未加密,怀疑伪加密。
  3. 修改加密标志位:将14 90改为14 00(解除伪加密)。
  4. 使用7-Zip直接打开解压,获取Flag。

关键点

  • ZIP伪加密通过修改加密标志位绕过,无需密码。
  • 7-Zip忽略伪加密,可直接解压。

赛题四:PLC的意外停摆

Flag
flag{48VAj7A4n5Q5vH}

检测工具
CTF-Net(或类似PLC分析工具)

步骤描述

  1. 使用CTF-Net工具分析PLC程序文件。
  2. 提取字符串或关键数据,发现Flag。
  3. 直接输出Flag。

关键点

  • PLC程序常包含明文或编码字符串,需用专业工具解析。
  • 本题无需逆向,直接字符串搜索即可。

赛题五:泄露的数据

Flag
flag{c3_1-1-3-1_2;c4_1-1-2-2_3;c6_1-1-2-1_3;c8_1-1-5-1_3;c10_1-1-5-1_3;}

检测工具
Wireshark

步骤描述

  1. 使用Wireshark打开流量包,过滤FTP-DATA流量。
  2. 导出FTP传输的文件,获取数据文件(如CSV)。
  3. 依据规则文件(数据分级分类规则.xlsx)对每列数据分类:
    • 身份证:1-1-5-1(3级证件类)
    • 邮箱:1-1-3-1(2级通信类)
    • MAC地址:1-1-2-2(3级财产类-设备信息)
    • 银行卡:1-1-2-1(3级财产类)
    • 驾照:1-1-5-1(3级证件类)
  4. 选择错误最少的有效列:
    • 邮箱:c3(格式相对规范)
    • MAC地址:c4(错误较少)
    • 银行卡:c6(多数为16位)
    • 驾照:c8(多数为12位)
    • 身份证:c10(长度更规范)
  5. 按列编号排序(c3→c4→c6→c8→c10),生成Flag格式。

关键点

  • 需严格遵循分类规则,避免混淆(如MAC地址属设备信息,非通信类)。
  • 选择数据质量最高的列,排除干扰项。

赛题六:破损的梯形图2

Flag
flag{VR7初始赋值错误改为60,WR10初始赋值错误改为5}

检测工具
ISPSoft 3.12(PLC编程软件)

步骤描述

  1. 导入ISP文件,分析梯形图逻辑。
  2. 区段13:计算高阈值VR6 = (VR1/2)VR3 + VR5 = (80/2)3 + 20 = 140。
    • 预期VR6 - VR7 = 80,但VR7=50,计算得140-50=90≠80。
    • 修正:VR7应改为60(140-60=80)。
  3. 区段14:计算WR3=WR1-WR2=50,WR5=WR3+WR4=55,WR7=WR5*WR6=110,WR9=WR7/WR8=55。
    • 预期WR9 - WR10 = 40,但WR10未知,计算得55-WR10=50 → WR10=5。
  4. 修改初始值:VR7=60,WR10=5。

关键点

  • 需熟悉PLC梯形图运算逻辑,逐级计算变量值。
  • 初始值错误导致结果偏差,需反向推导正确值。

赛题七:破损的梯形图1

Flag
flag{定时器指令需要更换为100ms级的TMR}

检测工具
ISPSoft 3.12

步骤描述

  1. 导入ISP文件,分析定时器指令:
    • 当前使用TMRH(高分辨率定时器),时基为10ms。
    • 设定值30000 → 实际时间=30000×10ms=300s=5分钟(但预期为50分钟)。
    • 设定值6000 → 实际时间=60s=1分钟(预期为10分钟)。
  2. 问题:定时器时基错误,应按0.1s(100ms)计算。
  3. 将TMRH指令改为普通TMR指令(100ms时基),保留原设定值30000和6000:
    • 30000×0.1s=3000s=50分钟
    • 6000×0.1s=600s=10分钟

关键点

  • TMRH(10ms级)与TMR(100ms级)的时基差异导致时间计算错误。
  • 无需修改设定值,仅更换指令类型即可。

总结

  • 隐写题常见于图像(Alpha通道、LSB)、压缩包(伪加密)。
  • 流量分析需结合规则文件分类数据,注意数据质量。
  • PLC逆向需熟悉梯形图逻辑和指令系统(如定时器时基)。
  • 工具使用:Python(图像处理)、Wireshark(流量分析)、010 Editor(二进制编辑)、ISPSoft(PLC分析)。

如有具体问题可进一步探讨!

2025年工业信息安全技能大赛石油行业锦标赛Writeup教学文档 赛题一:透明之钥 Flag flag{alpha_steghide_v2} 检测工具 Python + PIL库 步骤描述 使用Python的PIL库打开图像文件(几何图形.png)。 检查图像是否包含Alpha通道(RGBA或LA模式)。 提取Alpha通道数据,获取每个像素的透明度值(0-255)。 分析透明度值序列: 直接尝试将Alpha值序列解码为ASCII字符串。 若失败,输出前100个Alpha值寻找模式(如"flag{"对应的ASCII码序列)。 发现Alpha通道中隐藏的文本信息,直接提取Flag。 关键点 Alpha通道中存储了隐藏信息,完全透明(0)和完全不透明(255)可能被过滤,但本题中半透明值(1-254)直接构成Flag的ASCII码。 无需复杂处理,直接读取Alpha值并转换为文本即可。 赛题二:五彩斑斓黑 Flag flag{hidden_in_lsb} 检测工具 随波逐流(Stegsolve或类似LSB工具) 步骤描述 使用LSB(最低有效位)隐写分析工具(如Stegsolve)打开图像。 切换不同颜色通道和位平面,观察是否有隐藏信息。 在LSB层发现隐藏文本,直接提取Flag。 关键点 LSB隐写常见于图像隐写,需逐位分析RGB或Alpha通道的最低有效位。 工具自动化提取,无需手动解码。 赛题三:打不开的压缩包 Flag flag{jd9jc810123} 检测工具 010 Editor + 7-Zip 步骤描述 使用010 Editor打开压缩包,分析文件头。 发现两个几乎同时创建的文件,其中一个加密一个未加密,怀疑伪加密。 修改加密标志位:将 14 90 改为 14 00 (解除伪加密)。 使用7-Zip直接打开解压,获取Flag。 关键点 ZIP伪加密通过修改加密标志位绕过,无需密码。 7-Zip忽略伪加密,可直接解压。 赛题四:PLC的意外停摆 Flag flag{48VAj7A4n5Q5vH} 检测工具 CTF-Net(或类似PLC分析工具) 步骤描述 使用CTF-Net工具分析PLC程序文件。 提取字符串或关键数据,发现Flag。 直接输出Flag。 关键点 PLC程序常包含明文或编码字符串,需用专业工具解析。 本题无需逆向,直接字符串搜索即可。 赛题五:泄露的数据 Flag flag{c3_1-1-3-1_2;c4_1-1-2-2_3;c6_1-1-2-1_3;c8_1-1-5-1_3;c10_1-1-5-1_3;} 检测工具 Wireshark 步骤描述 使用Wireshark打开流量包,过滤FTP-DATA流量。 导出FTP传输的文件,获取数据文件(如CSV)。 依据规则文件(数据分级分类规则.xlsx)对每列数据分类: 身份证:1-1-5-1(3级证件类) 邮箱:1-1-3-1(2级通信类) MAC地址:1-1-2-2(3级财产类-设备信息) 银行卡:1-1-2-1(3级财产类) 驾照:1-1-5-1(3级证件类) 选择错误最少的有效列: 邮箱:c3(格式相对规范) MAC地址:c4(错误较少) 银行卡:c6(多数为16位) 驾照:c8(多数为12位) 身份证:c10(长度更规范) 按列编号排序(c3→c4→c6→c8→c10),生成Flag格式。 关键点 需严格遵循分类规则,避免混淆(如MAC地址属设备信息,非通信类)。 选择数据质量最高的列,排除干扰项。 赛题六:破损的梯形图2 Flag flag{VR7初始赋值错误改为60,WR10初始赋值错误改为5} 检测工具 ISPSoft 3.12(PLC编程软件) 步骤描述 导入ISP文件,分析梯形图逻辑。 区段13:计算高阈值VR6 = (VR1/2) VR3 + VR5 = (80/2) 3 + 20 = 140。 预期VR6 - VR7 = 80,但VR7=50,计算得140-50=90≠80。 修正:VR7应改为60(140-60=80)。 区段14:计算WR3=WR1-WR2=50,WR5=WR3+WR4=55,WR7=WR5* WR6=110,WR9=WR7/WR8=55。 预期WR9 - WR10 = 40,但WR10未知,计算得55-WR10=50 → WR10=5。 修改初始值:VR7=60,WR10=5。 关键点 需熟悉PLC梯形图运算逻辑,逐级计算变量值。 初始值错误导致结果偏差,需反向推导正确值。 赛题七:破损的梯形图1 Flag flag{定时器指令需要更换为100ms级的TMR} 检测工具 ISPSoft 3.12 步骤描述 导入ISP文件,分析定时器指令: 当前使用TMRH(高分辨率定时器),时基为10ms。 设定值30000 → 实际时间=30000×10ms=300s=5分钟(但预期为50分钟)。 设定值6000 → 实际时间=60s=1分钟(预期为10分钟)。 问题:定时器时基错误,应按0.1s(100ms)计算。 将TMRH指令改为普通TMR指令(100ms时基),保留原设定值30000和6000: 30000×0.1s=3000s=50分钟 6000×0.1s=600s=10分钟 关键点 TMRH(10ms级)与TMR(100ms级)的时基差异导致时间计算错误。 无需修改设定值,仅更换指令类型即可。 总结 隐写题常见于图像(Alpha通道、LSB)、压缩包(伪加密)。 流量分析需结合规则文件分类数据,注意数据质量。 PLC逆向需熟悉梯形图逻辑和指令系统(如定时器时基)。 工具使用:Python(图像处理)、Wireshark(流量分析)、010 Editor(二进制编辑)、ISPSoft(PLC分析)。 如有具体问题可进一步探讨!