2025年工业信息安全技能大赛 石油行业锦标赛writeup
字数 2430 2025-09-23 19:27:46
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分析)。
如有具体问题可进一步探讨!