WeChall - Inka
Challenge
题面是一首诗歌,以及一个"weird formula"链接
inka.php。
访问 inka.php 会得到随机的三个二进制数组成的表达式
1 | A * B + C |
其中 A ≈ 593 位、B/C ≈ 33 位,每次请求都重新生成。提示"some 3rd party lib"。
提交答案有严格限制:每个问题只能提交 1
次(错误/正确都会消耗该问题),提交错误会泄露正确答案(Correct would have been: XXX),但无法再提交;需重新
GET 才有新问题。答案固定 15 个大写字母。
另有响应时限:GET 到提交的间隔超限会返回
You are slow, slow, slow! You took Xs but your limit is Y.。limit
每次随机(实测出现过 0.50s 与 >5.3s),保险做法是单进程内
GET→解码→POST (本地解码仅需 0ms,zxingcpp scale=1 即可)。
Solution
关键洞察:N = A * B + C 恰好是
625 位 = 25×25 = QR 码 Version 2。painting
就是一幅"墙上的画"(QR 码)!"3rd party lib" = QR 库(phpqrcode
之流)
解法流程:
- GET
inka.php(需过 Anubis,用techaro.lol-anubis-authcookie jar)拿 painting - 提取 A、B、C 三个二进制数
N = A*B + C,转 625 位二进制,排成 25×25 矩阵- 反色(painting 中 1=白 0=黑,zxing 需 inverted 才能解)
- QR 解码 → 15 字符答案
- 立即提交
inka.php?answer=<ANSWER>
Solve Script
1 | #!/usr/bin/env python3 |