首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 安全檢測工具:Padding Oracle 攻擊掃描器 (Ethical Hacking ASP.NET)

     編輯:關於ASP.NET

Ethical Hacking ASP.NET 是 CodePlex 開源專案,提供 ASP.NET Padding Oracle 弱點自動掃描功能。1.3 版新增 Padding Oracle 檢測,可快速驗證網站是否受 CVE-2010-3332 影響。

Padding Oracle 弱點原理

  • ASP.NET 使用 AES 加密 ViewState/Forms Authentication Ticket,採用 CBC 模式 + PKCS#7 Padding
  • 解密時若 Padding 錯誤,拋出 CryptographicException (500 錯誤);正確則正常處理
  • 攻擊者利用錯誤訊息差異作為 Oracle,逐字節解密密文,進而偽造加密資料

工具使用步驟

  1. 下載 EthicalHackingASP.NET_v1.3.zip 解壓
  2. 執行 EthicalHackingASP.NET.exe (需 .NET 3.5+)
  3. 目標 URL 輸入完整網址 (如 https://example.com/default.aspx)
  4. 可選:設定逾時毫秒數
  5. 點擊 Send test requests 開始掃描 (需耐心等待,無進度條)
  6. 完成後查看輸出視窗:
    • 若不同請求回傳 不同 HTTP 狀態碼/錯誤頁內容 → 疑似存在 Padding Oracle
    • 若所有回應 一致 (統一錯誤頁/狀態碼) → 可能已防護

實測案例

掃描博客園疑似存在弱點

掃描 asp.net 官網已防護

ASP.NET 內建防護機制 (ASP.NET 3.5 SP1+ / 4.0+)

<configuration>
  <system.web>
    <!-- 啟用自訂錯誤頁,統一錯誤回應,防止 Oracle 洩漏 -->
    <customErrors mode="On" defaultRedirect="/Error.html">
      <error statusCode="500" redirect="/Error.html" />
    </customErrors>
    
    <!-- 機器金鑰驗證,防止 ViewState 竄改 -->
    <machineKey validation="HMACSHA256" decryption="AES" 
                validationKey="AutoGenerate,IsolateApps" 
                decryptionKey="AutoGenerate,IsolateApps" />
  </system.web>
</configuration>

進階防護建議

  • 統一錯誤處理:Application_Error 記錄詳細日誌,用戶端統一導向友善錯誤頁
  • 加密金鑰輪換:定期更換 machineKey,限制洩漏影響範圍
  • ViewState MAC:確保 <pages enableViewStateMac="true"> (預設開啟)
  • 升級框架:ASP.NET 4.5+ 內建更強的加密預設值

原始碼下載與二次開發

專案開源於 CodePlex,核心邏輯在 PaddingOracleScanner.cs,可整合至自動化安全掃描流程 (CI/CD 階段)。

相關資源

  • MS10-070 / CVE-2010-3332 官方公告
  • 《Padding Oracle Attack》 - Juliano Rizzo & Thai Duong (Ekoparty 2010)
  • NIST Vulnerability Database 條目
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved