2022江西省振兴杯

crypto

简单的RSA算法

yafu分解n,得到p,q,然后进行解密

1
2
3
4
5
6
7
8
9
10
11
12
import gmpy2
from Crypto.Util.number import *

c = 127787005372346984201114973214509899116
n = 249875510135225835839025820066377585461
p = 15849223833777174791
q = 15765788454744518371
e = 16573
assert n == p*q
d = gmpy2.invert(e,(p-1)*(q-1))
m = int(pow(c,d,n))
print(long_to_bytes(m))

得到

1
b'}c2s_45R_Xj{galf'

反过来就是flag

1
flag{jX_R54_s2c}

Misc

PLC流量分析

进行流量追踪,发现了可疑字符flag{fake_flag}R3以及41。并且似乎找到了规律,就是每一次发送这些字符前都会双方都会发送一系列可打印字符,作为开头。

尝试将flag{R341}作为flag,结果不行。看到fake想到了real,而跟这个相似的就是R341了,于是进行替换。得到flag

1
flag{R341_flag}

流量中的神秘信息

扔进Wireshark进行流量追踪,经过多次尝试找到了真正的flag

1
flag{d2UxY29tZVQwQ2hpbmE=}

很明显,括号内的要进行Base64解码,最终flag为

1
flag{we1comeT0China}

modbus流量分析

扔进Wireshark进行分析,流量追踪并没有看出有用的内容。于是尝试找最长的包,发现了可疑的内容。

将这些收集起来并直接chr()成字符,可惜并不是这么操作

但极大概率这是flag。尝试与flag的固定格式进行匹配,发现了规律

1
2
3
4
5
6
7
8
m = '153 147 158 152 132 146 144 155 157 138 140 160 150 140 160 154 158 140 134 130'.split()
m = [int(i) for i in m]

for i in m:
print(i, end=' ')
print()
for i in 'flag{':
print(ord(i), end=' ')

规律为对应数字进行相加总为255。于是解密脚本为

1
2
3
4
5
m = '153 147 158 152 132 146 144 155 157 138 140 160 150 140 160 154 158 140 134 130'.split()
m = [int(i) for i in m]

for i in m:
print(chr(255-i),end='')

得到flag

1
flag{modbus_is_easy}

STAGE

PCL图片分析

放入winhex分析,最后面有flag.txt,更改后缀为zip,里面有一个需要密码的flag.txt。

从更改图片宽高入手,找到了部分密码

进行模板爆破,

最终得到flag

1
flag{plc_sec_master}

工控主机中的异常文件

扔入winhex分析,发现尾部有oru-flag.jpg,直接将文件后缀改成.zip不行。仔细观察发现首部文件头为KP

但我只见过PK的文件头。于是将04034B50更改成504B0304,更改后缀名为.zip。得到需要密码的jpg图片。

用爆破工具进行爆破,一开始尝试大小写字母和数字,到后面爆破时间太长就减少字符集,最终得到

图片中含有flag

PPC

被截获的机密文件

扔进winhex打开,发现文件头为PK,更改文件后缀为.zip。解压缩得到一系列文件。

依次查看这些文件,发现func1.fcb(这文件名取的让人容易知道这是实现啥功能的模块代码)里面有有一段异或的加密代码,

根据上述代码,已知bufvar,所以应该是求W。写出python脚本如下

1
2
3
4
5
6
7
8
9
buf = [177, 146, 158, 156, 137, 148, 146, 147, 180, 142, 188, 137, 204, 197, 205, 203, 186, 143, 156, 147, 153, 139, 148, 152, 138, 181, 146, 137, 152, 145]
var = 0xfd
text = ''
for i in range(30):
val = buf[i] ^ var
text += chr(val)

print(text)
#LocationIsAt1806GrandviewHotel

得到flag

1
flag{LocationIsAt1806GrandviewHotel}

2022江西省振兴杯
http://example.com/2022/10/03/CTF/2022江西省振兴杯/
作者
gla2xy
发布于
2022年10月3日
许可协议