如何搓一道0day题

注意

本文内容纯属虚构娱乐。本创作不包含《网络安全等级保护条例》定义的任何漏洞验证代码/利用程序,不涉及关键信息基础设施安全,未达到《刑法》第二百八十五条规定的技术标准。作者不持有、不传播、不交易任何实际漏洞信息。任何技术细节仅为文学创作的需要加工,如有雷同实属巧合。读者因本文产生的任何设备/数据问题与作者无关。

作为战队里面(划水)能力 max 的人,你应该具有一定的出题素养。你的队伍刚发了通告,48 小时的 CTF 比赛,还得风格化,要有文化背景。出题任务都已经分下去了,队长看大伙出的题不够难,怎么办?让你来。

队长找到你的时候,你屏幕上的 mc 启动器还没来得及关掉,急忙忙的操作反而让它报了一大堆错,哈希码乱跳。你这时一定不要慌,保持冷静,微微一笑,随便点开一个 github repo 开始乱看。队长不会拿你怎么样的。这时队长一定会好声好气地跟你说:“嘿嘿嘿,老师觉得比赛出的题不够难,决定让你来出一道 0day 题。你看你能不能贡献一个洞出来?”

你心里一阵不爽,我这人就是个划水的,出题这种事儿你找别人去吧。出题谁人不能出,偏偏这时让我出。哎呀,今天还得看代码,明天还得开组会,后天还得写报告,事事真是多。早上起不来,晚上事情多。中午打个盹,一天蹉跎过。出题,我是来混吃混喝的,出个西巴崽子啊。

忆往昔皇帝赐官,二话不说,先推辞一番。你把电竞椅转了半圈抵住桌面边缘,看见了队长很尴尬的笑。刚要说出口的拒绝一下子咽了回去。真是麻了,队伍年年办比赛,年年得出题。怎么一到了这一届就得搞一个 0day 题了?好一个秃子植发炸了锅——杀马特了。

不过马上转念一想,我手上确实没有 0day 啊。无知者无畏,责任本来就不在我。情况就完全不同了呗。

你微微一笑,跟队长说:“没问题,我这就去搞一个 0day 题。”

你看着刚刚打开的 repo,无心插柳柳成荫,上面赫然写着 “Postgres”。好机会啊,哥们,好机会啊。鼠标悬在了全世界 top 的数据库 docker 镜像上,看着几天前刚刚发布的版本,你心里一阵狂喜。随后打开自己最爱的 neovim 编辑器,熟练地创建 dockerfile 输入 i,敲下 FROM alpine Postgres,最新版 full patch 的全新数据库扔到题版上。

sha256 显示在屏幕上的瞬间,你脑中浮现出了一个绝妙的主意。假若我直勾勾地把题目放出去,选手一定认为我在骗他们。但如果我随便放个烟雾弹出去,随便整个 sha256 扔出去,选手们就会认为我真的有 0day poc。题目有了支撑,选手们也会觉得我很牛逼。最重要的是,有了这个 sha256,选手们就可以望梅止渴,心里想着这题一定有洞,只是我们没有发现。

为了契合比赛的整体风格,你用尽了你吃奶的力气,写够了提示词,让 ai 生成了一段东部羊仔风格的题目简介。年轻的羊仔骑上了羊飞驰在海滩上,海浪拍打着岸边。然而羊圈没有锁上,羊仔的羊飞速地跑了出去。你觉得自己幽默极了。

于是你打开了 ywitter,发了一条动态,内容是上星期买的速溶咖啡发票订单的 hash。

万事具备,只欠演员登场。比赛时一定会有选手反馈这道题的。先把流量劫持上了。选手们一定会质疑这一点。你一点也不慌,这连压力都不算的。只要你把事情演得到位,这群 xx 一定会护着你的。你马上先把证书给上了,但是记住要用反代,这样既消除了选手的怀疑,你的流量劫持也不会被发现。有人问你就说 “我们尊重并保护选手的隐私,SSL 证书会保护你的流量不被劫持”。

接着选手一定会质疑你的能力。出题要讲究方法的呀,你不能甩个最新版 release 就完事了,连题目范围都没有的。这么大个软件库我怎么找漏洞啊?这时候你还是别慌,淡定地喝一口你的冰杯加色素小饮料。古人说得好,AI 改变世界。你就跟选手说你得找自己问题。只要把代码提供出来 ai 自动给你生成 poc,你轻松找到问题,都不用做的。连一个提示词都不用给。选手们这时候一定觉得你这题出得真棒。一个个都在这护着你,一个解都没有,还得说期待下一次出更好的题呢。

接下来你一句话也不要说。记住,你是出题人,你的工作就是把题目放出去。只要说的话给的信息够少,选手自己就会去猜。现代人都把这个叫作 “内耗”,你就算屁都不放一个,选手自己就把题目给圆上了。你就等着看他们的表演吧。

你知道自己正在参加一场没有导演的即兴剧,那些选手本身就是剧情 NPC。

过个一星期,谁还记得这题?他们不上班不上课的呀。

你心满意足😋。接着在电脑前认真地摸鱼,点开了弹劾案的最新消息。


萌ICP备20224060号
如果这篇博客帮助到你,可以留言夸夸我~
CC BY-NC 4.0 (除特别声明或转载文章外)