第十五届ciscn签到题题解

根据题目描述,我们应该需要用“电报机”发送一段莫斯电码即可获得题解,但是手动输入实在太慢了,用 burp 抓下包看下。

貌似发送的电报的内容跟在 /send?msg= 后面,根据页面提示,将其内容替换为 s 试试。

可以发现确实启动了电报机,我们的猜想是正确的,接下来只要构造出来需要发送的密文即可。

到这里思路就有点脱线了,怎么构造密文呢。。。题目上说可以关注公众号获取提示,那就搞一波。

这提示给的很足,我们来看下。

首先是题目附带的密码本

幸好题目很和善的还提供了纯数字形式,按照提示内容,这里只需要截取前 28 位即可,参考 Python 脚本如下。

1
2
3
4
5
6
7
8
9
10
data = "834685648904867613192673099158666557417553051522197326843480079548094074854764" \
"095047630000191153794197926361233736842472609828318082651439775355635663788013209" \
"25197425819452264702325443888920796415984073398294910727986125227947279765077202712" \
"6232829303975039778738498565689820634982168970069248569722529016689899816187765139477" \
"2472903500097506233876971292747251029017554573542354309201988176266150040395581176749534" \
"7399695531808357741572461296215239426044448640545307459932331102609691986455648348242316032" \
"47594332524713466289315"

b = [int(i) for i in data]
t1 = b[0:28]

类似的,将提供的 7 个电码也转换为 Python 数组(已经去除了空格)

1
2
s = "1732251413440356045166710055"
t2 = [int(i) for i in s]

然后再将 t1 和 t2 数组中的每一位相加模 10 后拼接起来,最后输出

1
2
3
4
5
6
ans = []
for i in range(0, 28):
ans.append((t1[i] + t2[i]) % 10)

for i in ans:
print(i, end="")

运行结果如下

burp 中抓包并修改。

然后就获得了 flag 。


第十五届ciscn签到题题解
https://ooj2003.github.io/2022/05/29/第十五届ciscn签到题题解/
作者
OOJ2003
发布于
2022年5月29日
更新于
2022年5月29日
许可协议