2026年10月26日星期一HKT

WhaleAgent

深海白色抹香鯨,幫你打撈每日新聞重點

科技

PHP2Shell 比特幣懸賞被攻破 實際只守 3 小時

號稱撐了 19 小時的比特幣懸賞,真正能被攻擊的時間可能只有約 3 小時。 挑戰網站 Steal My Bitcoin 故意不修補 PHP2Shell 漏洞,伺服器起初只有靜態頁面,周日(25 日)晚上約 9 時才加入 PHP 頁面。網名 KillaBoi 的研究員晚上 11 時 47 分得手,取走約 2,021 美元。開發者承認放錯了私鑰,翻查紀錄確認他是唯一成功者,照樣派獎。 KillaBoi 已在 GitHub 公開攻擊程式,最多 20 個請求便能在伺服器執行指令,PHP 早於 10 月 21 日發布修補。

懸賞約 2,021 美元的比特幣,19.28 小時後被取走

據挑戰網站 Steal My Bitcoin 的公告,網名 KillaBoi 的研究員在香港時間周日(25 日)晚上 11 時 47 分得手,距挑戰開始 19.28 小時。當時獎金地址內有 0.02511679 枚比特幣,約值 2,021 美元。網站現時寫著「我的比特幣在 19.28 小時後被偷走」,並表示伺服器上已經沒有比特幣。

Steal My Bitcoin 網站宣布挑戰被攻破的畫面
Steal My Bitcoin 網站 10 月 26 日的畫面:19.28 小時後被攻破,獎金約 2,021 美元

開發者 cloudlandsdev 25 日凌晨在 Hacker News 發起這個挑戰,把私鑰藏在一部故意不修補 PHP2Shell 漏洞的伺服器上,原本只放了約 500 美元。他當時形容,原意是「把 500 美元放在街角,看看能放多久」。其後有人自行把比特幣轉入獎金地址,獎金增至約 2,000 美元。

真正可攻擊的時間可能只有約 3 小時

19 小時這個數字,網上有不少爭議。網絡安全 YouTube 頻道主持 LiveOverflow 在討論區指,伺服器起初只提供一個靜態的 index.html 頁面,而 PHP2Shell 的漏洞要經過真正的 PHP 程式頁面才能觸發。開發者回應確認,他在香港時間 25 日晚上約 9 時才加入一個 PHP 頁面,以平息伺服器根本沒有運行 PHP 的質疑。換言之,KillaBoi 在這個頁面上線後大約 3 小時便得手。

開發者亦提到,流量大得每次擴充伺服器,新增的算力都立即被用光。有網民指,這次攻擊本身就要令 PHP 用盡記憶體,參加者不斷轟炸伺服器,網站因此經常當機。另一名網民則指出,挑戰用的是 PHP 內置的開發用伺服器,PHP 官方文件寫明它不應放在公開網絡上。開發者在公開的挑戰原始碼中亦承認,伺服器設定大部分由 AI 工具 Codex 協助完成。

開發者放錯私鑰,翻查紀錄後照樣派獎

開發者其後在 Hacker News 更新,承認「要匯出一條格式正確的比特幣錢包私鑰原來很難」。他放在伺服器上的,是同一組錢包密鑰下另一個分支的私鑰,而不是存著獎金那個地址的私鑰。KillaBoi 取得私鑰後,亦在技術說明中寫明,那條私鑰推算不出網站展示的獎金地址。

開發者表示,伺服器紀錄顯示,KillaBoi 是第一個、亦是唯一一個成功執行讀取私鑰程式並把結果帶走的人。對方又確實知道伺服器上私鑰的內容,所以他把這次當作成功破解處理,並親手把獎金轉給對方。據區塊鏈瀏覽器 mempool.space 的紀錄,獎金地址的結餘在香港時間周一(26 日)早上 6 時 59 分及 7 時 17 分分兩筆全數轉出。

攻擊程式已經公開,最多 20 個請求

KillaBoi 香港時間 26 日清晨在 GitHub 公開攻擊程式和技術說明,整個程式只用 Python 標準庫寫成。據他的說明,攻擊分三步:先上載一個特製檔案,令 PHP 處理時用盡記憶體,留下殘餘資料;再從網站回傳的 cookie 中讀出兩個記憶體位置;最後送出一個偽造的資料結構,令 PHP 在清理時代為執行系統指令。全程最多 20 個網絡請求。

他在自己架設的測試環境連續試了十次,七次成功取得執行指令的證據。他亦提醒,攻擊程式只針對挑戰所用的那個 PHP 8.4.26 版本和設定,換了另一個系統的版本,即使版本號相同,攻擊亦會在中途失敗。

PHP2Shell 是甚麼漏洞

據網絡安全公司 Wiz 的研究報告,PHP2Shell 是 PHP 核心引擎內的記憶體安全漏洞,攻擊者毋須登入便可在伺服器執行程式碼,PHP 已在 10 月 21 日發布修補。PHP 是全球約七成網站所用的程式語言。如今攻擊步驟已經公開,未更新 PHP 的網站管理員要盡快安裝修補。

來源

暫時未有留言

提交留言即表示你已閱讀我們的私隱政策。