關注這個專欄的其他相關筆記:[Web 安全] Web 安全攻防 - 學習手冊-CSDN博客
0x01:反序列化漏洞 — 漏洞介紹
反序列化漏洞是一種常見的安全漏洞,主要出現在應用程序將 序列化數據 重新轉換為對象(即反序列化)的過程中,在講解這個漏洞前,我們先了解一下什么是 序列化 & 反序列化:
-
序列化: 序列化就是將對象的狀態信息轉換為可以存儲或傳輸的形式的過程。
-
反序列化: 將序列化后的數據還原為原始對象的過程。
0x0101:反序列化漏洞原理
當程序反序列化不可信的輸入數據 時,若未嚴格校驗數據合法性,攻擊者就可能構造惡意數據,誘使程序執行非預期操作,例如:
-
執行任意代碼: 反序列化時觸發對象中的危險方法(如 Java 的
readObject
、PHP 的__wakeup
) -
篡改數據邏輯: 修改序列化數據中的關鍵參數(如用戶權限、身份標識)。
-
拒絕服務攻擊: 通過構造畸形數據導致程序崩潰。
0x0102:反序列化漏洞防御措施
-
避免反序列化不可信數據:優先使用 JSON 等安全格式傳輸數據。
-
白名單驗證:僅允許反序列化預定義的合法類。
-
數據簽名/加密:驗證序列化數據的完整性和來源。
-
更新依賴庫:修復已知漏洞的第三方組件(如Java的Apache Commons Collections)。
0x02:反序列化漏洞 — PHP 反序列化漏洞
0x0201:PHP 反序列化漏洞 — 基礎知識
-
PHP 反序列化漏洞 —— PHP 面向對象基礎知識
-
PHP 反序列化漏洞 —— PHP 序列化 & 反序列化
-
PHP 反序列化漏洞 —— PHP 反序列化漏洞演示案例
0x0202:PHP 反序列化漏洞 — 挖掘思路
-
PHP 反序列化漏洞 —— PHP 魔法方法 & POP 鏈構造思路
-
PHP 反序列化漏洞 —— WAF 繞過姿勢