一名開發者故意架一台沒安裝近期安全更新的 PHP 伺服器,把一個放了比特幣的錢包私鑰擺在上面,公開懸賞看有沒有人能真的靠漏洞把錢搬走,大約 19.28 小時後就被攻破,領走 0.02511679 枚比特幣,依官網標示約 2,021 美元。
(前情提要:PHP、Node.js 連爆嚴重漏洞:最近上網要注意這 5 件事自保)
(背景補充:PHP 基金會認錯:高危漏洞 2024 年就有徵兆,為何修補卡關兩年?)
重點摘要
- 開發者故意架沒修補的 PHP 8.4.26 主機,放比特幣私鑰公開懸賞攻破
- 挑戰開跑約 19.28 小時後被攻破,KillaBoi 領走約 2,021 美元賞金
- PHP 已於 10 月 21 日釋出 8.4.27 等緊急修補版,挑戰主機的 8.4.26 在修補前
一名 Hacker News 帳號為 cloudlandsdev 的開發者,在台灣時間 10 月 25 日清晨發起一項名為「Steal My Bitcoin」的挑戰,據 官方挑戰網站 Steal My Bitcoin,他故意架一台沒安裝近期安全更新的 PHP 伺服器,把一個裝有比特幣的錢包私鑰放在裡面,公開讓任何人嘗試,只要能動用私鑰、把錢包裡的比特幣轉走,就能拿走全部賞金。
開發者在原帖裡說,發起動機是想知道外界有沒有人真的有辦法利用近期這個 PHP 遠端程式碼執行漏洞,而不只是停留在理論上的擔心。日媒 GIGAZINE 報導,賞金一開始約 500 美元,約新台幣 1.6 萬元(以 10 月 27 日匯率 1 美元約 32.6 元計),後來靠外界捐款加碼到約 2,021 美元,約新台幣 6.6 萬元。主辦者也設了界線,攻擊只能針對網頁應用與 PHP 執行環境,禁止攻擊底層主機或癱瘓服務。
補上執行頁後約 3 小時被攻破
根據官方網站紀錄,比特幣在開跑約 19.28 小時後被搬走,也就是不到一天,時間落在台灣時間 10 月 25 日晚上 11 點 47 分。挑戰開始後 17 個多小時都沒有人成功,一度有資安研究者質疑,是不是伺服器設定讓漏洞的觸發路徑根本到不了。
資安研究者 LiveOverflow 指出,最初的伺服器並沒有對外開放一個會執行 PHP 程式的頁面,主辦者後來在台灣時間 10 月 25 日晚上 9 點左右補上這個頁面,約 3 小時後就被攻破。
攻破者的代號是 KillaBoi,他把重現流程公開在 GitHub 上。概念上,他利用 PHP 在記憶體不足時的處理方式,一步步取得伺服器內部資訊,最後在伺服器上執行指令、拿到私鑰。官方網站附上獎金錢包連結,區塊鏈瀏覽器 mempool.space 的資料顯示,這個錢包累計收到的 0.02511679 枚比特幣目前已全數轉出,餘額歸零。
挑戰主機跑 PHP 8.4.26
這台挑戰伺服器跑的是 PHP 8.4.26,正好落在官方緊急修補版之前。PHP 在 10 月針對外界稱為「PHP2Shell」的嚴重漏洞連續示警,並於台灣時間 10 月 21 日釋出一批緊急更新,包含 8.5.12、8.4.27、8.3.36、8.2.35 四個版本。以 8.4 系列來說,升級到 8.4.27 就涵蓋這批修補,其他版本線各自對應上列版本,等於挑戰主機的 8.4.26 還差一個版本才補上。
PHP 官方 10 月 24 日另外揭露一個與 session 上傳進度有關的新漏洞 CVE-2026-115560,形容為不太可能發生的遠端執行路徑,需要三個條件同時成立才會中,預設設定不符合,目前也還沒有修補版。官方建議還沒關閉 session 上傳進度功能的站長,先把它關掉當作保險。主辦者表示,之後可能再推出新的挑戰,也會另外公開這次辦挑戰的經驗。
常見問題
Steal My Bitcoin 挑戰是什麼
一名開發者故意架一台沒安裝近期安全更新的 PHP 8.4.26 伺服器,把比特幣錢包私鑰放上去公開懸賞,測試這個被部分人認為難以利用的漏洞,實務上能不能真的被用來偷走私鑰。
這個 PHP 漏洞該升級到哪個版本
PHP 已於 10 月 21 日釋出 8.5.12、8.4.27、8.3.36、8.2.35 緊急修補版,挑戰主機跑的 8.4.26 落在修補之前;8.4 系列升到 8.4.27 就涵蓋這批修補。

