根据题目描述,我们应该需要用“电报机”发送一段莫斯电码即可获得题解,但是手动输入实在太慢了,用 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 。