第一场
损坏的风机
题目描述
小明是一家新能源汽车制造厂的风机操作员,每天的工作是根据工厂的实时温度输入风机的转数,但由于机器的老化,风机最多能接受2000转/分钟的转速,在当天下班后,检修人员发现风机由于转速过快出现了故障,请根据维修人员捕获的流量包分析当天风机的转速达到了多少转才出现的故障,flag为发送高额转速的Data层的HEX数据。flag格式为:flag{}
解题思路
- 首先筛选出modbus协议的数据包
- 根据题目提示
输入风机的转数
,对数据包info中带有Write Single Register
的数据包进行分析,发现只有706号数据包传输的数据大于2000, - 提取data层hex数据即为flag{4d0000000006010600000bb8}
第二场
异常的Fins协议分析
题目描述
某天工业现场生产线设备出现故障报警,请通过事发时的数据包分析报警原因,找到flag。flag格式为:flag{}。
解题思路
- 直接用科来网络分析系统一把梭,打开数据包进行重放,在诊断项里面找到故障数据包,作为flag进行提交👌。
第三场
异常的IEC104分析
题目描述
小张在对电力企业进行渗透测试时,发现一台开启IEC104通讯协议的设备,并尝试对该设备进行测试。但是在IDS中发现了相关通讯异常。请尝试找出数据包中的flag。flag格式为:flag{}。
解题思路
- 用Wireshark打开题目,根据题目名称筛选IEC104协议
- 看到IOA119、101、108、132、99、111、109、101猜测可能是ASCII码
- 通过ascii码查找119=w、101=e、108=l、99=c、111=o、109=m、101=e、132不存在
- 因此获取
flag{welcome}
解题思路二
- 科来软件一把梭
异常的s7comm
题目描述
工程师小夏在针对西门子300PLC设备不定期的停止运行,发现设备存在异常外联控制,再对审计设备进行分析中发现数据包中存在异常的eth.trailer、eth.fcs,请您帮助小夏找到外联地址并发送异常的HEX,对服务器返回的HEX进行解密。flag格式为:flag{}。
解题思路
根据管理员的提示,筛选端口37830,发现了外联的IP和异常hex字符串。
编写脚本与服务器进行通讯,获取响应字符串(这里需要做一下尝试知道需要把trailer和frame check sequence拼接起来)
from pwn import * p = remote("39.105.136.152", 37830) context.log_level = "debug" c = "21313221fdfcee965a21000000693359784e7051764f714c64497a426e" p.send(c) print(p.recvline()) p.close()
根据题目提示,要对返回的hex值进行解密,因此需要知道加密方式。查看异常请求的响应,发现一串很像base64编码的字符串,尝试解码,获取
TEA (300
因此推测加密方式为TEA,解密密钥为300,解密获取flag
工控梯形图分析1
题目描述
小张在进行设备调试时,编写了一段模拟量转换的程序,已知IW2的值为7750,V14为0.2396091521,请计算出V11的值帮助小张进一步分析,flag为V11与V13之和。flag格式为flag{}。
解题思路
- 用AutoThink打开题目文件,输入IW2和V14进行仿真,得到V2-V6
- V11=V9/V6=30866/2806=11,填入数据后再次仿真得V13
- 最终获取flag{v11+v13}=flag{11.2467985302}
异常的协议分析
题目描述
小代所在的企业车间PLC发生异常,造成生产线无法正常运行。请您帮助小代分析出PLC遭到异常的原因。flag格式为:flag{}。
解题思路
- 用Wireshark打开数据包,发现全部是TCP流量,因此只能查找不合规的TCP数据包,在包3043尾部发现额外的字符串。
- 因为不知道加密方式,用ciphey进行解密,获取flag
解题思路2
- 用科来分析软件打开数据包。发现3041、3042有问题,于是返回看3041-3043发现额外字符串,然后获取flag
工控指示灯的逻辑推理
题目描述
小明刚刚入门工业自动化领域,某天发现一个很有意思的指示灯梯形图运行过程,你能帮助小明找出flag吗?(详细赛题实例请下载进行查看),flag格式为flag{}。
参考链接
当PLC把所有输入存储好,程序逻辑开始执行。第一条是执行断检测(常开指令)。指令结果与对应内存的位一致。 诚如这条指令叫常开,正常状态下(内存位为0)触点是打开的,结果是0。如果内存位为1,则触点闭合,结果为1。
- https://wenku.baidu.com/view/cb60e869a98271fe910ef969.html
- https://zhuanlan.zhihu.com/p/295392325
- https://blog.csdn.net/lhyhb/article/details/81675997
解题思路
- I0.0接通,M0.0自锁,Q0.0接通,T37计时1s,M0.1接通,Q0.0断开。根据题目用例得:H1T1SP
- M0.0接通,T37计时1s后,M0.1自锁,Q0.1接通,T38计时2s,M0.2接通,Q0.1断开。根据题目用例得:H2M1ST2SP
- M0.1接通,T38计时2s后,M0.2自锁,T39计时4s,Clock_1s闪烁,Q0.2接通,M0.3接通,Q0.2断开。根据题目用例得:H3M3SL4SP
- M0.2接通,T39计时4s后,M0.3自锁,Q0.3接通,T40计时5S,M0.4接通,Q0.3断开。根据题目用例得:H4M7ST5SP
- M0.3接通,T40计时5s后,M0.4自锁,Q0.4接通,T41计时3S,M0.5接通,Q0.4断开。根据题目用例得:H5M12ST3SP
- M0.4接通,T41计时3s后,M0.5自锁,Q0.5接通,T42计时2S,M0.6接通,Q0.5断开。根据题目用例得:H6M15ST2SP
- M0.5接通,T42计时2s后,M0.6自锁,Clock_1s闪烁,Q0.6接通,T43计时4s,循环结束。根据题目用例得:H7M17SL6SP
- 最终获得flag{H1T1SP-H2M1ST2SP-H3M3SL4SP-H4M7ST5SP-H5M12ST3SP-H6M15ST2SP-H7M17SL6SP}
工控梯形图分析2
题目描述
小王是工厂的一名工程师,每天的工作是启动设备进行加工,设备一共进行两次加工。设备在运转过程中突然停止工作,打开梯形图发现其中两个数值丢失,请帮助小王填补数值VD200与VD300,flag为VD200加上VD300。flag格式为flag{VD200_XX_VD300_XX}。
解题思路
- 根据梯形图进行计算
- VW0=2+4=6
- VW2=VW0*4=24
- VD3=Double int(VW2)=24
- VD100=Real(VD3)=24
- VD104=Double int(20)=20
- VD108=Real(VD104)=20
- VD112=VD100-VD108=24-20=4
- VD120=VD112*VD116=4*VD116=80.84
- VD200=VD116=VD120/4=20.21
- VD300=VD116=VD120/4=79.284/4=19.821
- 这里要想清楚一个点,就是1、梯形图是按顺序执行;2、以跑通为目的,所以依次给VD120赋值,最终flag{VD200_20.21_VD300_19.821}
08智能卡
题目描述
小吕对一张已经过期的Mifare非接触智能卡进行修改,想进行延长智能卡的到期时间。小吕成功对数据解密并将数据dump出来,存为originalData。再将相关文件中的有关时间的数据进行修改并重新写入智能卡中。修改后本卡还是不能使用。小吕再次将卡内数据导出,存为modifyData。你能帮助小吕解决相关智能卡的使用吗?flag是文件的md5值。flag格式为:flag{}。
解题思路
这题出现了非预期,官方直接把correct.dump白给了。
md5 correct.dump
MD5 (correct.dump) = 526e683b4f9ccf4aa56e65fc3831929e