Discuz!論壇在處理網絡圖片時未驗證URL合法性,直接將用戶輸入寫入img標籤src屬性,導致釣魚頁面彈出、惡意腳本執行、CSRF攻擊等多重風險。雖內建formhash機制緩解CSRF,但無法防禦跨站圖片注入引發的掛馬、刷流量、釣魚等攻擊。
漏洞利用鏈路實戰
釣魚攻擊鏈(無需繞過CSRF防禦)
- 發帖插入精心構造的釣魚頁面URL作為「網絡圖片」
- 受害者瀏覽帖子時,瀏覽器自動請求該URL,直接加載釣魚頁面(彈窗/重定向/內嵌)
- 低安全意識用戶輸入賬號密碼,攻擊者即時獲取憑證
CSRF攻擊鏈(需特定條件)
- 論壇與主站同域部署,共享Cookie認證體系
- 構造「新建管理員賬戶」等敏感操作URL作為圖片源
- 管理員登錄主站後訪問論壇帖子,瀏覽器攜帶Cookie自動發起請求
- 後端驗證通過,隱蔽創建後門賬戶
根因與修復建議
- 核心缺陷:未對圖片URL進行協議/域名/內容類型白名單校驗,盲目信任用戶輸入
- 修復方案:
- 圖片代理化:後端下載驗證後再分發,斷開用戶直連
- Content-Security-Policy限制img-src指令
- 敏感操作強制雙因子/二次確認,不依賴單一Cookie
- 異域部署論壇與核心業務系統,物理隔離Cookie作用域
此類「功能性漏洞」常被忽視,實則是業務邏輯與安全假設脫節的典型案例。開發框架應內建安全默認值,而非依賴開發者事後修補。