防禦必須從入侵者角度思考。當前主流 Web 入侵鏈:尋找程式漏洞 → 獲取 WebShell → 依伺服器配置尋找提權路徑 → 奪取伺服器控制權。因此,配合伺服器配置防範 WebShell 是有效策略。
有安全意識的管理員會修改網站程式預設資料庫路徑,但疏忽者直接安裝甚至保留說明檔。駭客可下載源碼本地測試找到預設資料庫路徑,下載資料庫讀取用戶資訊(通常為 MD5 雜湊)找到管理入口登入獲取 WebShell。或因程式報錯洩露資料庫路徑。
.mdb。若使用 MSSQL 且存在注入點,仍可透過注入工具猜解資料庫。若上傳功能無身分驗證,直接上傳 ASP 木馬即獲 WebShell。
Web 程式以 IIS 用戶(通常為 IUSR 或應用程式池身分)運行。配置步驟:
db_owner 權限帳戶;若能正常運行,public 權限最安全。設為 dbo 權限後,入侵者僅能靠猜解帳密或差異備份獲 WebShell。前者可透過加密與修改預設後台路徑防禦。差異備份條件:備份權限 + 知曉 Web 目錄。尋找 Web 目錄通常用 xp_regread(讀取註冊表)與 xp_dirtree(遍歷目錄)兩個擴展預存程序。
xp_regread、xp_dirtree 兩個擴展預存程序(可連同對應 DLL 一併刪除)。db_owner,其他資料庫不操作。總結:從 IIS 映射、目錄權限分離、資料庫最小權限、移除危險擴展預存程序四個層面構建纵深防禦,將 Web 入侵成本推至攻擊者難以承受的高度。