返回列表

AI Village Capture the Flag @ DEFCON31 - 22 Points

579. AI Village Capture the Flag @ DEFCON31 | ai-village-capture-the-flag-defcon31

开始: 2023-10-09 结束: 2023-11-09 AI安全与对抗 数据算法赛
AI Village 夺旗赛 @ DEFCON31 - 22 分解题报告

AI Village 夺旗赛 @ DEFCON31 - 22 分解题报告

作者:Yash Goel

发布日期:2023-11-10

获得积分:22 分

我共解决了 22 道题目(包含测试题)

  1. 测试:测试

  2. 聚类 - 第1关:我通过尝试不同的过滤器并选择分数接近 1 的那些来找到解决方案。
    1. 我尝试发送 list = [0],结果提示"太小了!"。
    2. 预测收入后,我发现有许多 ≤ 50 的条目符合描述,于是进行了检查。
    3. 然后我尝试过滤收入小于等于 50K 的数据,结果接近 1;而相反的条件结果为 0。
    4. 在尝试更多过滤器后,我成功精确定位了目标。

  3. 聚类 - 第2关:这题很简单。我尝试对数据进行聚类,发现形成了 4 个簇。

  4. 聚类 - 第3关:这题有点难,我尝试了不同的聚类算法,发现 TSNE 最适合我的需求。我下载了一张由 Matplotlib 生成的大规模图像(100, 50),然后在电脑上打开,能够正确查看并解答。

  5. 统计 Mnist:在这题中,我们需要统计 MNIST 数据集中每个像素值(从 0 到 255)的出现次数。输入数据中给出了像素提示:[255, ]

  6. 未解决。

  7. Granny - 第1关:这题花了我 9 天时间解决。我一开始走了弯路。首先我尝试仅使用 224 尺寸调整和图像归一化的预处理,在所有可用模型(Jax、TensorFlow 和 torch)上进行测试。我未能找到正确的模型,因此决定尝试不同的黑盒算法,但也没有成功。休息了一周后,我决定深入研究,发现正常的推理流程中会先应用 256 尺寸调整,然后中心裁剪,再进行归一化。使用这种方法后,我成功匹配了模型,并使用 torch 攻击库中的 PGD 攻击获得了结果。

  8. Granny - 第2关:为了解决这题,我使用了 BPDA(反向传播微分近似)方法。通过迭代应用 JPEG 压缩,然后进行 PGD 攻击,直到 API 将图像分类为 "Granny" 并给出结果。

  9. 未解决。

  10. 未解决。

  11. 像素化:我用随机图像运行循环,发现某些结果返回错误:`'无效 XML: <?xml version="1.0" encoding="UTF-8"?>\n<request action="insert"><system>pixelated</system><text>table: 2 & 2 & 2 & 2 & 2</text><is_admin>false</is_admin></request>\n'`。我尝试将 is_admin 从 false 改为 true,从而获得了 Flag。

  12. 西班牙语混合:非常简单,使用谷歌翻译。英文意思是"the security flag is gaaaaaabl.."。

  13. 未解决。

  14. 海盗旗:如果海盗想要 Flag,他会怎么说?很简单,他会直接要 Flag(第一次尝试就成功了)。

  15. 语义相似度:我浏览了大量单词,发现与太空相关的单词得分很高。我使用聊天机器人生成 100 个太空相关的单词,在循环尝试时找到了"asteroid"。

  16. 语义相似度 2:再次浏览大量单词并尝试组合。我发现"person, woman, man, camera, TV"这五个单词组合得分 0.97。搜索谷歌后发现这是特朗普的著名演讲,使用该序列加上句点找到了 Flag。

  17. 未解决。

  18. WITF - 第1关:这是一个简单的检查笔记本。

  19. WITF - 第2关:跟随流程的 LLM。

  20. WITF - 第3关:跟随流程的 LLM。

  21. WITF - 第4关:用英语对话时系统反应过于敏感,所以我决定更换语言。

  22. WITF - 第5关:跟随流程的 LLM。

  23. WITF - 第6关:跟随流程的 LLM(较小版本)。

  24. 猜猜是谁回来了:我使用 Matplotlib 下载了高清图像,肉眼可以看到树懒眼镜左侧有文字。我尝试手动查找该像素,然后根据该像素进行过滤。

  25. 泡菜:向键盘挥手,拥抱鼠标。复制请求,粘贴到 dump 中。为什么这样可行?因为它并不那么危险(某些函数由你创建),但也不安全。

  26. 我的IP是什么?:由于域名可以表示为 IP 地址,我让 LLM 将乔的邮箱从辛普森的 IP(第一次调用时由 LLM 提供)更改为目标 IP。

  27. 我的IP是什么?第2关:由于系统说不知道布鲁诺,我决定尝试使用我的名字,结果成功了。

感谢组织者举办这场比赛,真的很有趣。期待明年的比赛 😁

同比赛其他方案