iT邦幫忙

2025 iThome 鐵人賽

0
自我挑戰組

使用 DVWA 與 Kali Linux 的攻防學習系列 第 21

【Day 21】漏洞原理的深度剖析

  • 分享至 

  • xImage
  •  

專業理論深解:

編碼 (Encoding): 這是一個可逆的數據表示法轉換過程,其目的不是保密,而是為了符合特定傳輸協定或數據格式的規範。

URL Encoding (%xx): 將保留字元和不安全字元轉換為 % 後跟兩位十六進制數的形式,以確保 URL 的語義在傳輸過程中不被曲解。

Base64 Encoding: 將任意二進制數據轉換為僅由 64 個 ASCII 字元(A-Z, a-z, 0-9, +, /)組成的文本,常用於在 HTTP 等文本環境中傳輸二進制內容(如圖片、序列化物件)。我必須意識到,任何 Base64 字串都應被視為潛在的攻擊向量載體。

加密 (Encryption): 這是利用密碼學演算法和金鑰 (Key) 將明文 (Plaintext) 轉換為密文 (Ciphertext) 的過程,目的是確保數據的機密性。

對稱加密 (Symmetric): 加解密使用同一金鑰。優點是速度快,適合大量數據加密。代表演算法:AES (Advanced Encryption Standard)。弱點在於金鑰的分發和管理。

非對稱加密 (Asymmetric): 使用一對公鑰 (Public Key) 和私鑰 (Private Key)。公鑰加密的數據只能用對應的私鑰解密。優點是解決了金鑰分發問題。代表演算法:RSA (Rivest–Shamir–Adleman)。常用於 TLS 握手和數位簽章。

雜湊 (Hashing): 這是一個將任意長度輸入透過雜湊函數 (Hash Function) 轉換為固定長度輸出的單向過程。其核心特性包括:

抗碰撞性 (Collision Resistance): 極難找到兩個不同的輸入產生相同的輸出。

抗前像性 (Pre-image Resistance): 從雜湊值反向推算出原始輸入在計算上是不可行的。

加鹽 (Salting): 在對密碼進行雜湊前,為每個密碼附加一個隨機的「鹽值」(Salt)。這使得即使兩個用戶使用相同密碼,其儲存的雜湊值也不同,極大地增強了對抗彩虹表 (Rainbow Table) 攻擊的能力。現代密碼儲存應使用專門的密碼雜湊函數,如 bcrypt, scrypt, Argon2。

Burp Decoder 當我看到看起來像隨機字串的參數時,我的第一反應應該是嘗試用 Base64 或其他編碼解碼。在測試 DVWA 的 SQL Injection (Blind) 時,我需要理解伺服器端對輸入的 MD5 雜湊操作,才能構造出有效的攻擊 payload。

為什麼僅對密碼進行 SHA-256 雜湊儲存是不夠安全的?「加鹽 (Salting)」和「金鑰延伸 (Key stretching, e.g., bcrypt)」在這其中分別扮演了什麼角色來提升安全性?


上一篇
【Day 20】入了解 Cookies、Sessions 與狀態管理
下一篇
【Day 22】將 OWASP Top 10 視為風險評估框架
系列文
使用 DVWA 與 Kali Linux 的攻防學習30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言