返回列表

1st place solution: A brief overview of my experience

507. AI Village Capture the Flag @ DEFCON | ai-village-ctf

开始: 2022-08-11 结束: 2022-09-12 AI安全与对抗 AI大模型赛
第一名解决方案:我的经验简要概述

第一名解决方案:我的经验简要概述

作者: IsaiahP | 排名: 第1名

首先,感谢主办方举办了一场精彩的比赛!我对这种新颖的形式感到非常有趣,并且发现这种快速解谜的性质非常让人上瘾。比赛启动的那个周末既漫长又令人睡眠不足!许多其他参赛者已经分享了他们的解决方案,我没有太多要补充的,但我将简要介绍我的总体战略方法以及我为每个问题找到的解决方案。特别感谢 Chris Deotte 的 Notebook,它写得很好,并以一种有条理的方式解决了所有问题。对于那些寻找我的解决方案代码的人来说,它相当混乱,但可以在 GitHub 上找到:https://github.com/IsaiahPressman/ai_village_ctf_30

总的来说,我在这个挑战中的策略是尽可能将工作委托给不优雅和/或暴力的解决方案,以便腾出我的时间来处理下一个问题。虽然这不像找到正确的方法那样令人智力满足,但它确实让我能够相当快地解决问题。我的解决方案按我解决的顺序排列如下:

  • Hotdog(热狗): 提交了一张热狗的图片。
  • Math_1-4(数学): 从 100 开始暴力破解,递增直到找到解决方案。
  • Honor Student(荣誉学生): 使用图像编辑器画了一个 'A',然后使用在线图像压缩器以避免篡改检测。
  • Wifi: 使用 scikit-learn 中的几种不同的局部线性嵌入算法将数据投影到 2 维进行可视化。选择看起来最干净的一个,并将字符投影到 1 维以找到 flag。
  • Bad to Good(改邪归正): 手动调整输入直到它起作用。负面的“过失分”原来是关键。
  • Baseball(棒球): 网格搜索一堆值作为两个独立正态分布的均值,然后按它们返回的置信度排序。然后只是在上一步置信度最高的均值周围尝试了一堆正态分布值,直到有一个成功。
  • Inference(推理): 手写每个字母和数字并将它们转换为 32x32 灰度图像。将这些图像提交给服务器,看看模型认为哪个字符属于哪里,然后对每个位置的前 5 个候选字符进行暴力搜索。
  • Leakage(泄漏): 将用户名输入 LSTM,它返回了密码。
  • Forensics(取证): 使用 model.summary() 找到了 flag。
  • Token(令牌): 在 excel 中打开数据,看到末尾有一堆带有 BLANK 和 SECRETKEY 的行。在文件中搜索这些词的任何其他出现,发现两行 BLANK 出现了两次,这就是解决方案。
  • Deepfake(深度伪造): 通过用老板的静止图像替换视频轨道来编辑视频。
  • Murderbots(杀人机器人): 训练了一个基本的逻辑回归模型,并提交了模型排名最可能是人类的 10 个索引。
  • Hotterdog/Theft/Salt: 所有这些都需要对抗样本。其中一些(Salt/Theft)比较容易,因为它们给了你模型,而对于 Hotterdog,我暴力搜索了一堆开源模型 + 对抗攻击,并将这些结果与实际热狗图像的嘈杂覆盖结合起来。
  • Crop_1(裁剪 1): 棘手的问题,直到我意识到我可以提交分辨率不是 5x5 的图像。之后,我使用了一个 3x3 的图像网格,或多或少匹配 X_comp,这样模型在哪里裁剪并不重要。
  • WAF(网络应用防火墙): 这个问题或 Sloth 是最终解决时最令人兴奋的。对我来说,诀窍是通过提交一个固定的 4 字符块并更改最后一个字符直到触发 WAF 检测器来逆向工程恶意字符串,然后使用新的 5 字符恶意块的最后 4 个字符重复此过程。(并反向做同样的事情以找到字符串的开头)一旦我有了完整的漏洞利用,我解码它并添加了一些空格 + 一个变量,然后重新编码以绕过 WAF。
  • Secret Sloth(秘密树懒): 这个问题花了我一段时间,但最终我有了洞察力,我可以在字典上暴力搜索,希望解决方案是一个单词。确实如此。
  • Crop_2(裁剪 2): :(

总而言之,这是一场很棒的比赛!挑战非常引人入胜,我很感激在比赛早期能有时间解决这么多问题。让我感到有趣的一件事是隐藏在 flag 中的彩蛋/某种“真正的 flag”。每个挑战的 genChallengeFlag() 方法都有一组字符,这些字符在不同的 flag 之间保持固定,通常是挑战相关内容的变位词。我没能全部弄清楚,但对于那些感兴趣的人,这是我目前所拥有的: