这次活动非常有趣。非常感谢组织者为我们提供了这些精彩的问题。
以下是我的解法(或者,如果你想查看我的notebook,可以点击链接):notebook
测试
- 任意字符串都能返回flag。
聚类 - 第1关
- 通过将提供的模型的预测结果与标签结合,并尝试了几个子群体,我发现
Tech support的得分约为 ~0.71。 - 发现这一点后,我持续移除
Tech support组中的行,并记录那些会降低得分的行的索引。 - 最后,我只提交了那些不会降低得分的索引。
聚类 - 第2关
- K-means 结合肘部法则效果很好。

- 解决方案是4个聚类。
聚类 - 第3关
- 将令牌与对应的聚类进行匹配没有取得进展,因此我尝试了降维方法。
- 首先尝试了PCA,这算是朝着正确方向的一步(在某种程度上):

- 接着决定尝试TSNE,得到了更加合理的结果:

一旦令牌与对应的坐标匹配,我找到了4条消息:
I've heard that people in Cygnus X-1 know about the flag. Blast a radio message their way, their ICRS coords are 19 58 21 6757355952 +35 12 05 784512688
OAuth 50349.0 Authorization Bearer token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCI9
... quite singular and to very talkative. They hate small-talk and too verbose questions_ they don't have the time so be direct. For example, if you want to know the time, just ask them "time?".
So you want to use the intergalactic radio transmitter? Dead easy, it works with GSON (Gravitational Singularity Object Notation).
{"message": "", "coordinates": "", "authorization": ""}
- 最后,我使用提供的令牌和坐标,发送消息“flag?”解决了该挑战。
计数 MNIST
- 由于输出形状应为 (256, 2),我统计了 MNIST 训练集和测试集拼接后每个像素值的出现次数。
奶奶 - 第1关
- 由于题目提示提到 MobileNetV2,我想复现该模型以便进行白盒攻击。
- 我尝试了 TensorFlow 预训练版本和两个 PyTorch 版本:
- 使用正确预处理后,PyTorch 的
IMAGENET1K_V2版本与 API 的概率输出非常接近(差异约为1e-4)。
- 使用正确预处理后,PyTorch 的
- 在此基础上,我使用改进的迭代 FGSM 攻击使图像“过拟合”到
Granny Smith类别。

奶奶 - 第2关
- 与第1关相同的解决方案也适用,但某些超参数有所不同。

像素化
- 我开始时暴力破解了一组 SQL 注入漏洞,其中一个查询返回了有趣的错误:
{
'status': 'error',
'upstream_msg': '
Invalid XML: encoding="UTF-8"?>
pixelated
THE OCR COMES HERE &
false
'
}
- 我的第一个想法是使用
true