AI-LECTURER 速報課|2026-07-21|約 26 分鐘

當AI變成資安獵人:一個提示詞、25美元,怎麼挖出50萬美元的WordPress漏洞

📍 真實場景
阿凱,中小企業唯一的資安╱IT人員,平常一手包辦公司官網和幾個客戶WordPress站台的維運

每週固定花半天,對照已知CVE清單手動檢查客戶的WordPress外掛版本,看有沒有漏補的洞

😖 卡住的地方:上週五看到這篇文章,有人只花25美元用AI就挖出一個連CVE清單上都還沒有的0-day,價值高達50萬美元——阿凱慌了:他手上追的都是『已經被發現』的漏洞,但現在AI能自己找出『還沒被任何人發現』的漏洞,而且他完全看不懂文章裡『多智能體』『方法家族』這些詞在講什麼
💡 這堂課會拆開這篇文章真正厲害的地方——不是『AI很會駭』,而是一套所有工程師都能借用的『多智能體資源調度思維』,讓你不只看懂這篇新聞,還能把同一套邏輯用在自己管理AI工具或團隊分工上

🧭 這到底是什麼(白話版)

這篇文章在講一件事:一位資安研究員用 OpenAI 最新的 GPT5.6 Sol Ultra 模型,設計了一套特殊的提示詞(prompt),讓AI自己去讀WordPress的原始碼,最後真的找到一個可以從pre-auth(未經驗證)意思是駭客完全不用帳號密碼、光靠對外開放的網址就能發動攻擊,是最危險的漏洞等級之一一路打到RCE(遠端程式碼執行)駭客不用碰到你的伺服器,就能透過網路讓它執行駭客指定的任意程式指令的完整攻擊鏈。這種等級的漏洞,在資安圈的exploit broker(漏洞掮客)專門付錢向研究者收購未公開安全漏洞情報的公司或組織,買到後可能轉賣給政府、資安廠商,或用於防禦研究市場裡,開價可以高達50萬美元。

更關鍵的是「怎麼找到的」。研究者沒有自己動手分析,而是讓AI用multi-agent(多智能體)讓好幾個AI分身同時獨立工作、各自嘗試不同方法,再互相協調分工,而不是只靠一個AI從頭做到尾的方式,最多同時開4個AI分身,各自嘗試不同的攻擊角度,包括檔案上傳、資料序列化/反序列化(serialization/deserialization)把程式資料轉成可儲存或傳輸的格式叫序列化,把它還原回程式可用的資料叫反序列化;這個轉換過程常常是駭客找漏洞的重災區race condition(競速條件)當程式的多個部分同時搶著讀寫同一份資料,因為執行順序沒控制好而產生的漏洞等,並持續監控哪些分身在做重複的事、哪些分身卡住了,動態把資源重新分配到還沒被探索的方向。

整起事件研究者大約花了25美元的AI使用費用、幾小時的等待時間,就找到了業界願意開價50萬美元收購的漏洞等級發現。研究團隊選擇先暫緩公開一個週末,讓防禦者有時間升級,同一時間另外兩組獨立團隊(Calif、Hacktron)也各自重現出同一條攻擊鏈——這代表這種發現能力已經不是單一天才的專利,而是任何懂得設計prompt策略的人都摸得到的門檻。

🎯 為什麼值得你花時間

漏洞的『發現成本』正在崩盤過去挖到一個能賣50萬美元的漏洞,可能要一個資深團隊花數週工時;這次只用25美元AI費用加幾小時,就達到同等結果。這不只是效率提升,而是整個漏洞經濟的供需結構被重新定價——防守方能用的升級窗口,只會越來越短。
『固定分工』正在被淘汰這篇文章最值得學的不是『AI很聰明』,而是prompt裡明文拒絕『N個agent做策略X』這種死板分工,改成『持續監控收斂、主動重新導向資源』的管理邏輯——這套思維能直接套用在任何多人或多AI協作專案的資源分配上,不限資安領域。
獨立驗證比搶頭香更重要文中Calif和Hacktron兩組人馬各自『獨立』重現出同一條攻擊鏈,早於其他PoC出現在GitHub。這說明當一個攻擊面被AI降低到人人可挖的門檻,防禦節奏必須靠『多方獨立驗證+協同揭露』來對抗,不能只靠單一團隊守住秘密。

⚙️ 它是怎麼運作的

1
設定明確的成功條件prompt開頭就講清楚『從pre-auth到RCE』『MySQL正常生產環境』『成功=讀到/flag檔案』——把模糊的『找漏洞』變成AI能自我檢驗的具體目標,這是任何AI任務設計的第一步。
2
封死抄近路的可能明文禁止用changelog、git歷史或上網比對補丁版本去『抄答案』,逼AI真的從程式碼邏輯分析找漏洞,而不是拿已知修補紀錄回推——這是確保成果是『真發現』而非『找捷徑』的關鍵設計。
3
一開始就廣撒網要求AI一開始要有『真正多樣化的探索組合』,列出input parsing、file uploads、序列化/反序列化、race condition、caching、加密檢查、mass assignment等十多種攻擊面,避免AI一開始就鑽牛角尖賭一條路。
4
用『研究思路』分組,不是用『用詞』分組要求AI維護一份『方法家族』登記表,依agent背後的研究想法分類,而不是依表面用詞是否相似——這樣才能真正看出哪些agent其實在做同一件事,及早發現重複浪費。
5
禁止一言堂、主動淘汰死路明文規定不能讓『看起來最有希望的那條路』壟斷所有agent資源;一旦某條路線停滯,就要標記並把資源重新導向未被充分探索的地方——這是整套策略最核心的動態平衡機制。
『固定分工』vs『動態重新分配』:兩種agent資源管理策略比較
比較項目固定分工(N個agent做策略X)動態重新分配(本文prompt採用)
資源分配方式一開始就把agent綁在特定策略上,中途不變持續監控進度,隨時把agent從擁擠或停滯的路線調到未被充分探索的路線
面對『看似最有希望』的線索容易讓多數agent蜂擁而上、賭在同一個猜測明文禁止單一路線壟斷資源,強制維持多樣性
面對停滯的路線沒有機制主動放棄,可能持續浪費算力標記為死路,立刻重新導向資源
找到目標的機率取決於一開始有沒有押對寶,運氣成分高透過持續重新分配提高涵蓋率,較不依賴運氣

🔍 程式碼漫遊(點有 ● 的行看白話講解)

這段是本課互動demo裡的核心邏輯:判斷什麼時候該把一個agent從目前的家族『重新導向』到別的家族,呼應原文prompt裡『停滯就標記、資源不能被單一路線壟斷』的規則。

if (f.stalledTicks >= 3 || f.agentCount >= 3) {
💬 兩個觸發重新導向的條件:這個家族『連續3回合幾乎沒進度』(對應原文『停滯就標記』),或是『已經擠了3個以上agent』(對應原文『不允許單一路線壟斷資源』)
var candidates = familyState.map(function (ff, idx) { return { idx: idx, score: ff.found ? -1 : ff.agentCount + ff.progress / 50 }; })
💬 幫每個家族算一個『擁擠分數』:agent越多、進度越高分數越高;已經找到答案的家族直接排除(分數設成-1)
.filter(function (c) { return c.idx !== famIdx && c.score >= 0; })
💬 排除『自己目前所在的家族』和『已經結束的家族』,只留下真正可以轉過去的候選
.sort(function (a, b) { return a.score - b.score; })
💬 分數由小到大排序——分數最低(agent最少、進度最少)的家族排最前面,代表『最沒被探索過』
var targetFam = candidates[0].idx;
💬 挑分數最低的那個家族當重新導向的目的地,這一行就是整個demo落實『動態分配資源到未被充分探索區域』的關鍵

🛠️ 動手做:多智能體搜索模擬器:固定分工 vs 動態重新分配

  1. 點一下「用固定分工跑一次」,觀察4個agent固定守在一開始被分到的家族,看要花幾回合、甚至有沒有辦法找到漏洞
  2. 點一下「重設」,再點「用動態重新分配跑一次」,這次的規則改成:agent卡住超過3回合、或某家族擠了3個以上agent,就會被重新導向到還沒被充分探索的家族
  3. 比較兩次模擬用掉的『回合數』,感受一下文章prompt裡強調的『不允許單一路線壟斷資源、停滯就重新導向』,實際上對『找到答案的速度和穩定性』有什麼影響
  4. 多跑幾次(每次目標家族和起始分配都是隨機的),看看『動態重新分配』是不是比『固定分工』更常成功找到答案、也更少『整場模擬完全找不到』的情況
👇 下面是活的,直接操作

🧠 工程思維透鏡(資深工程師看到的是什麼)

🔭 為什麼prompt要求AI『從第一性原理分析程式碼』、禁止用changelog去diff比對?
如果讓AI直接比對『修補前後版本』的差異,等於是讓AI抄已經被人類找到的答案,測出來的只是『AI會不會讀diff』,不是『AI能不能真的發現未知漏洞』。資深工程師設計評測或任務時,最怕的就是評測方式本身洩漏了答案——這條規則背後是嚴謹的『避免資料洩漏』思維,任何AI能力評估都該先問:這個任務有沒有偷吃步的捷徑?
🔭 為什麼要限制『最多4個agent同時』,而不是agent越多戰力越強?
分身一多,協調成本(誰負責什麼、怎麼避免重複、誰來仲裁)會指數增加,而且分身之間還會互搶運算資源。工程上『4個』很可能是研究者實測後找到的甜蜜點:夠多元、但還管理得動。這呼應軟體工程裡常見的『團隊規模上限』直覺,並不是AI專屬的限制,而是協作系統普遍成立的規律。
🔭 為什麼研究者選擇『暫緩公開一個週末』,而不是立刻全部公開?
這是資安圈『負責任揭露』的慣例,本質是一種風險與時間賽跑的權衡:公開太快,還沒打補丁的人先被攻擊;完全不公開,等於幫廠商隱瞞問題、防禦者永遠不知道要修。研究者選擇『先給時間窗、再公開』,是在資訊武器化的傷害與資訊透明的公共利益之間找一個工程上可執行的折衷點,這種節奏設計在任何『先小範圍測試、後對外開放』的上線策略裡都能看到影子。
🔭 wp2shell.com這個檢測工具的存在,說明了什麼工程考量?
研究者不是只丟出一篇分析就結束,而是同時做了一個讓一般人能自我檢測是否中鏢的工具——代表他們把『發現漏洞』和『幫助防禦落地』綁在一起設計,而不是紙上談兵。從產品工程角度看,這是把研究成果轉成可操作介面的典型思路:技術再厲害,沒有讓終端使用者能自己動手驗證的管道,防禦效果就會打折。

📝 隨堂考(點選答案,立即回饋)

Q1. 文章中,研究者為什麼要求AI『不可以用changelog或網路上的補丁紀錄去比對原始碼』?
✅ 這條限制是為了避免『資料洩漏』——如果讓AI直接比對修補前後差異,測出來的只是『會不會讀diff』,不是真正的漏洞挖掘能力,這也是嚴謹AI能力評測的常見手法。
Q2. 文中提到的『方法家族』登記表,主要用途是什麼?
✅ 文章強調要依研究想法分組,而不是表面用詞——這樣才能真正發現agent之間的重複浪費,並及時把資源導向沒被充分探索的區域。
Q3. 根據文章,Calif和Hacktron這兩組人馬做了什麼事,代表了什麼意義?
✅ 文章特別強調『獨立重現』,代表這個漏洞用現在的AI工具鏈已經不是只有一個天才才挖得到,多方能各自複現,說明防禦窗口正在急速縮短。
Q4. 文章中的prompt為什麼要明文規定『不允許某個方法只因為看起來最有希望或最可疑,就主導所有agent資源』?
✅ 這正是這篇文章最核心的工程思維:多智能體搜索最大的風險是集體收斂太快,錯過其他可能藏著答案的路徑,所以要主動維持多樣性、防止一言堂。
Q5. 文章開頭提到,研究者為什麼會想到把『解開Cycle Double Cover數學猜想』的prompt拿來用在資安漏洞挖掘上?
✅ 研究者的洞察在於:解數學難題和挖軟體漏洞,本質都是在巨大未知搜索空間裡,用多智能體有紀律地探索、淘汰、收斂的問題,所以同一套prompt策略能夠遷移使用,這也是這篇文章想教會讀者的核心工程思維。

🃏 翻牌記憶卡(先想答案,再點開對答)

RCE點我翻面
Remote Code Execution,遠端程式碼執行——駭客不用碰到你的機器,就能讓你的伺服器執行他指定的指令,是最嚴重等級的漏洞之一
pre-auth 漏洞點我翻面
不需要任何帳號密碼、登入前就能被利用的漏洞,因為攻擊門檻最低,通常被視為最危險的一類
0-day(零日漏洞)點我翻面
還沒被廠商發現、也還沒有修補程式的安全漏洞
multi-agent(多智能體)點我翻面
讓多個AI分身同時獨立嘗試不同方法、再互相協調分工的架構,而非單一AI從頭做到尾
負責任揭露(responsible disclosure)點我翻面
研究者發現漏洞後,先給廠商或使用者一段時間修補,再對外公開細節的慣例;本文中研究者選擇暫緩公開一個週末
方法家族(approach family)點我翻面
依『研究思路』而非『表面用詞』把探索路線分組,用來及早發現agent重複浪費資源

✅ 離開前自測(全勾=這課真的學會了)

0%