2019 工业信息安全技能大赛-成都站 WriteUp
🏆 赛事概况
比赛阶段:全国复赛与总决赛
举办时间:复赛为 2019 年 9 月 23-24 日;总决赛为 2019 年 9 月 29 日
举办地点:成都中国西部国际博览城
参赛规模:复赛有 60 支队伍,其中 30 支晋级总决赛;大赛历时三个月,共吸引近 250 支队伍、近千名选手参加
最终结果:来自绿盟科技的 M01N 战队获得总决赛一等奖
🏛️ 组织架构
指导单位:成都市人民政府
主办单位:国家工业信息安全发展研究中心、成都市经济和信息化局、四川天府新区成都管理委员会
承办单位:工业信息安全产业发展联盟
技术支持:烽台科技(灯塔实验室)、四川哨兵信息科技有限公司等
⚙️ 赛程赛制:两阶段比拼
第一阶段:全国复赛(9 月 23-24 日)
复赛为期两天,采用积分制,最终排名前 30 的队伍晋级
第一日:应急恢复赛:选手需在规定时间内,对包含 3330 个故障的工业信息系统及 12 套异常工业场景进行问题修复,共成功修复 1803 次。其中,”护网先锋” 战队以修复 55 次的成绩排名第一
第二日:漏洞挖掘赛:选手对 60 余套工控及网络产品进行漏洞测试,现场共发现 46 处产品漏洞。”爱测试” 和 “还我地精工程师” 两支战队均发现 4 个漏洞,并列第一
第二阶段:全国总决赛(9 月 29 日)
赛制创新:首创 “插旗攻防” 竞赛模式
比赛场景:围绕石油、电力、智慧城市交通等 30 套关键信息基础设施的真实工控场景展开攻防
技术实现:首次通过工业网络靶场平台,将真实控制系统与虚拟化仿真技术结合
🏅 全国总决赛最终十强排名
总决赛的十强队伍及最终名次如下:
| 最终排名 | 队伍名称 | 所属单位 | 奖项 |
|---|---|---|---|
| 第 1 名 | M01N | 绿盟科技 | 一等奖 (奖金10万元) |
| 第 2 名 | 恒安威信 | 威海恒安威信科技有限公司 | 二等奖 (奖金5万元) |
| 第 3 名 | 铁人战队 | 大庆油田信息技术公司 | 二等奖 |
| 第 4 名 | 爱测试 | 战略支援部队信息工程大学 | 三等奖 (奖金2.5万元) |
| 第 5 名 | 护网先锋 | 国网山东省电力公司 | 三等奖 |
| 第 6 名 | 安芝 | 北京航空航天大学 | 三等奖 |
| 第 7 名 | GUET | 桂林电子科技大学 | 三等奖 |
| 第 8 名 | 饮水思源 | 国网聊城供电公司信息通信分公司 | 三等奖 |
| 第 9 名 | 神荼战队 | 河北省电子信息产品监督检验院、河北师范大学 | 三等奖 |
| 第 10 名 | 瑞小新 | 江苏瑞新信息技术股份有限公司 | 三等奖 |
Misc
虚拟 PLC(PLC 仿真)
先通过西门子 S7-PLCSIM 仿真软件,生成一个 *.plc 的仿真程序文件,使用正常文件的文件头对题目附件进行修复
使用 S7-PLCSIM 打开修复好的 *.PLC 文件,再使用西门子 STEP7 编程软件连接虚拟 PLC 并从中读取程序
最后可以在 DB 块中对数据进行转码,最后得到 flag

1 | flag{myfiletypeisplcsim} |
TCP-urgent-pointer(TCP 协议)

urgent_pointer 的核心作用是指示紧急数据的结束位置。它的具体含义和计算方式如下:
它是一个 “偏移量”:urgent_pointer 存储的是一个正的偏移量,而非绝对的字节序号
计算紧急数据的结束位置:将这个偏移量加上当前 TCP 报文段的序列号(Sequence Number),即可得到一个 “紧急指针”。这个指针所指向的位置,就标志着紧急数据的结束
与 URG 标志协同:
urgent_pointer字段仅在 URG 控制位被置 1 时才有效。接收方看到URG=1时,才会去解析这个指针
过滤语法:tcp.urgent_pointer > 0

筛选出 28 条数据,将其中的 Uregent pointer 的值依次取出
1 | 90 109 120 104 90 51 116 106 97 68 73 121 99 106 86 102 90 106 66 121 88 51 107 119 100 88 48 61 |
转 ASCII 码得到
1 | ZmxhZ3tjaDIycjVfZjByX3kwdX0= |
Base64 解码得到
1 | flag{ch22r5_f0r_y0u} |
工业梯形图分析 2(梯形图分析)
使用西门子打开附件,可以看到有几个功能块, 其中 0B1 是主程序, DB 是数据块

在 0B1 中搜索找到了 DB8.DBX0.0

启动模块仿真

S7-PLCSIM 会自动弹出来

这里需要把仿真 PLC 设置为 STOP 模式才能下载程序
然后把程序下载到仿真 PLC,接下来把仿真 PLC 切换到 RUN 模式
下一步连线 PLC 并在线监视

然后找到 DB8.DBX0.0 右键使其为 1 运行

修改后,直接搜索 DB20.DBW0 查看程序计算结果即可

1 | flag{C8} |
工业梯形图分析 1(梯形图分析)

和上面一样,直接把 PIW256 改成 4096

1 | flag{37091.9} |