日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Java序列化反序列化原理及漏洞解決方案

瀏覽:18日期:2022-08-27 14:25:34

Java序列化

Java 提供了一種對象序列化的機(jī)制,該機(jī)制中,一個(gè)對象可以被表示為一個(gè)字節(jié)序列,該字節(jié)序列包括該對象的數(shù)據(jù)、有關(guān)對象的類型的信息和存儲(chǔ)在對象中數(shù)據(jù)的類型。

Java反序列化

反序列化就是將字節(jié)序列恢復(fù)為Java對象的過程

整個(gè)過程都是 Java 虛擬機(jī)(JVM)獨(dú)立的,也就是說,在一個(gè)平臺(tái)上序列化的對象可以在另一個(gè)完全不同的平臺(tái)上反序列化該對象,因此可以實(shí)現(xiàn)多平臺(tái)之間的通信、對象持久化存儲(chǔ),主要有如下幾個(gè)應(yīng)用場景。

HTTP:多平臺(tái)之間的通信,管理等

RMI:是 Java 的一組擁護(hù)開發(fā)分布式應(yīng)用程序的 API,實(shí)現(xiàn)了不同操作系統(tǒng)之間程序的方法調(diào)用。值得注意的是,RMI 的傳輸 100% 基于反序列化,Java RMI 的默認(rèn)端口是1099端口。

JMX:JMX 是一套標(biāo)準(zhǔn)的代理和服務(wù),用戶可以在任何 Java 應(yīng)用程序中使用這些代理和服務(wù)實(shí)現(xiàn)管理,中間件軟件 WebLogic 的管理頁面就是基于 JMX 開發(fā)的,而 JBoss 則整個(gè)系統(tǒng)都基于 JMX 構(gòu)架。

系列化反序列化基礎(chǔ)

序列化和反序列化本身并不存在問題。但當(dāng)輸入的反序列化的數(shù)據(jù)可被用戶控制,那么攻擊者即可通過構(gòu)造惡意輸入,讓反序列化產(chǎn)生非預(yù)期的對象,在此過程中執(zhí)行構(gòu)造的任意代碼。

一個(gè)類的對象能夠序列化的成功需要兩個(gè)條件

該類必須實(shí)現(xiàn) java.io.Serializable 接口 該類的所有屬性必須是可序列化的。如果有一個(gè)屬性不是可序列化的,則該屬性必須注明是短暫的。

漏洞基本原理

簡單的反序列化Demo

首先定義對象類Persion,包含兩個(gè)參數(shù)

public class implements java.io.Serializable{ public String name; public int age; public void info(){ System.out.println('Name:'+this.name+';nAge:'+this.age); }}

在主類中聲明對象,并且將對象序列化為二進(jìn)制文件,將其存儲(chǔ)到硬盤中

import java.io.*;public class Main{ public static void main(String [] args){ 將對象序列化為二進(jìn)制文件 Persion p = new Persion(); p.name = 'Joner'; p.age = 18; try { //打開一個(gè)文件輸入流 FileOutputStream fileOut = new FileOutputStream('D:testtest.db'); //建立對象輸入流 ObjectOutputStream out = new ObjectOutputStream(fileOut); //輸出反序列化對象 out.writeObject(p); out.close(); fileOut.close(); System.out.printf('保存成功'); }catch(IOException i){ i.printStackTrace(); }}

進(jìn)行反序列化

import java.io.*;public class Main{ public static void main(String [] args){ /*從二進(jìn)制文件中提取對象*/ Persion persion = null; try{ FileInputStream fileInputStream = new FileInputStream('D:testtest.db'); //建立對象輸入流 ObjectInputStream inputStream = new ObjectInputStream(fileInputStream); persion = (Persion) inputStream.readObject(); inputStream.close(); fileInputStream.close(); }catch (ClassNotFoundException c){ System.out.println('對象未找到'); c.printStackTrace(); return; } catch (FileNotFoundException e) { e.printStackTrace(); return; } catch (IOException e) { e.printStackTrace(); return; } System.out.println('反序列化對象.......'); System.out.println('Name:'+persion.name); System.out.println('Age:'+persion.age); }}

查看test.db文件的內(nèi)容可以看見如下內(nèi)容

其中 AC ED 00 05 是java 序列化內(nèi)容的特征,其中00 05 是版本信息,base64編碼后為ro0AB

反序列化漏洞Demo

在上面的Demo中可以看到,進(jìn)行反序列化時(shí)會(huì)調(diào)用readObject()方法,如果readObject方法書寫不當(dāng)就會(huì)引發(fā)漏洞。

import java.io.*;public class Main{ public static void main(String [] args)throws Exception{ Unsafeclass unsafeclass = new Unsafeclass(); unsafeclass.name = 'hhhhh'; FileOutputStream fileOutputStream = new FileOutputStream('object'); ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream); //將對象寫入object文件 objectOutputStream.writeObject(unsafeclass); objectOutputStream.close(); //從文件中反序列化對象 FileInputStream fileInputStream = new FileInputStream('object'); ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream); //恢復(fù)對象 Unsafeclass objectFormDisk = (Unsafeclass)objectInputStream.readObject(); System.out.println(objectFormDisk.name); objectOutputStream.close(); }}class Unsafeclass implements Serializable{ public String name; //重寫readObject()方法 private void readObject(java.io.ObjectInputStream inputStream ) throws IOException , ClassNotFoundException{ //執(zhí)行默認(rèn)的readObdect()方法 inputStream.defaultReadObject(); //執(zhí)行打開計(jì)算器命令 Runtime.getRuntime().exec('calc.exe'); }}

程序運(yùn)行過程為:

UnsafeClass類背序列化進(jìn)入object文件 從object文件中恢復(fù)對象 調(diào)用被恢復(fù)對象的readObject()方法 命令被執(zhí)行

這樣看感覺并不會(huì)有人會(huì)這樣寫readobject()這個(gè)方法,而且一些成熟的框架都會(huì)有防范反序列化的方法,但仍有很大比例的反序列化漏洞,這主要是使用了不安全的庫造成的。上面只是介紹了簡單的Java反序列化過程,接下來會(huì)有一篇文章介紹反序列化漏洞檢測方法以及復(fù)現(xiàn)一些經(jīng)典反序列化漏洞。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日本一不卡视频| 亚洲精品日本| 四虎在线精品| 亚洲1区在线| 日韩精品免费视频人成| 亚洲一级大片| 欧美精品资源| 不卡一区2区| 六月婷婷一区| 日韩欧美精品一区二区综合视频| 蜜臀精品久久久久久蜜臀 | 美女视频一区在线观看| 国产精品2区| 国产伊人久久| 亚洲手机在线| 亚洲欧美日本日韩| 日本成人手机在线| 日韩福利视频导航| 国内自拍视频一区二区三区| 国产 日韩 欧美一区| 欧美在线网站| 国产精品久一| 精品中文一区| 国产精品v一区二区三区| 久久精品官网| 欧美日韩国产一区二区在线观看| 精品精品国产三级a∨在线| 亚洲成人av观看| 日韩欧美中文字幕电影| 精品视频自拍| 免费日本视频一区| 精品亚洲二区| 爽爽淫人综合网网站| 国产一区二区久久久久| 蜜桃一区二区三区在线观看| 九九九精品视频| 少妇精品久久久一区二区三区| 精品国产亚洲日本| 免费不卡在线观看| 日韩欧美另类一区二区| 91福利精品在线观看| 999在线观看精品免费不卡网站| 国产精品视频一区二区三区四蜜臂 | 国产va免费精品观看精品视频| 国产aⅴ精品一区二区四区| 视频在线观看91| 99精品在线免费在线观看| 日本99精品| 中文字幕一区二区三区四区久久 | 亚洲免费成人av在线| 日韩伦理在线一区| 久久成人福利| 国产精品麻豆成人av电影艾秋| 99在线观看免费视频精品观看| 成人国产精选| 国产精品久久免费视频| 亚洲精品日本| 综合一区二区三区| 欧美精品激情| 99视频精品| 99在线精品免费视频九九视| 99精品美女| 九一成人免费视频| 婷婷成人基地| 先锋亚洲精品| 亚洲精选91| 日韩福利视频一区| 国产精品亚洲四区在线观看| 欧美亚洲一级| 国产一区调教| 免费观看亚洲| 成人国产精品久久| 成人三级高清视频在线看| 欧洲一区二区三区精品| 免费福利视频一区二区三区| 日韩av中文字幕一区二区三区| 只有精品亚洲| 国产欧美日韩综合一区在线播放| 欧美日韩一区二区三区四区在线观看| 91精品国产一区二区在线观看| 国产欧美日韩影院| 成人午夜毛片| 日韩视频精品在线观看| 亚洲伊人精品酒店| 日韩国产在线不卡视频| 日韩激情网站| 成人在线丰满少妇av| 国产一区亚洲| 国产亚洲字幕| 成人美女视频| 亚洲另类视频| 福利精品一区| 蜜桃91丨九色丨蝌蚪91桃色 | 97精品在线| 三级亚洲高清视频| 麻豆视频久久| 国产模特精品视频久久久久| 国产精品欧美三级在线观看| 日韩电影免费网址| 99国产精品久久久久久久| 国产欧美一区二区精品久久久| 亚洲二区视频| 精品资源在线| 日韩福利视频一区| 欧美亚洲在线日韩| 欧美国产另类| 欧美天堂一区二区| 欧美资源在线| 久久天堂成人| 欧美黑人巨大videos精品| 欧美专区在线| 99xxxx成人网| 欧美日韩四区| 91精品亚洲| 美女久久久久久 | 国产精品极品| 中文字幕日本一区| 亚洲午夜电影| 亚洲成av在线| 国产精品久久观看| 精品一区二区三区中文字幕视频| 亚洲精品伦理| 一区二区三区四区在线观看国产日韩 | 99国内精品| 伊人久久婷婷| 精品欧美一区二区三区在线观看| 精品久久一区| 97视频热人人精品免费| 98精品久久久久久久| 国产一区二区三区天码| 精品视频在线观看网站| 精品亚洲成人| 一本大道色婷婷在线| 亚洲1234区| 亚洲午夜电影| 亚洲毛片一区| 国产精品毛片aⅴ一区二区三区| 国产精品99精品一区二区三区∴| 国产精品网在线观看| 四虎成人av| 97se综合| 久久成人一区| 国产精品一区2区3区| 国产精品久久久久蜜臀| 韩国精品主播一区二区在线观看 | 久久精品高清| 鲁大师成人一区二区三区| 夜夜嗨一区二区| 日韩欧美2区| 精品久久网站| 亚洲欧美久久久| 欧美日本一区| 日本高清不卡一区二区三区视频| 国产中文一区| 鲁大师影院一区二区三区| 国产另类在线| 蜜桃视频欧美| 91九色综合| 欧美日韩色图| 国产欧美精品久久| 久久久久久免费视频| 日本亚洲不卡| 福利一区二区| 天堂av一区| 99久久婷婷这里只有精品| 日韩免费精品| 久久国产亚洲| 国产精品一区二区中文字幕| 亚洲一级二级| 精品一区二区男人吃奶| 免费在线欧美视频| av资源亚洲| 里番精品3d一二三区| 免费视频久久| 久久精品亚洲人成影院| 国产精品xxx| 日韩毛片一区| 99香蕉国产精品偷在线观看| 国产 日韩 欧美 综合 一区| 日本强好片久久久久久aaa| 黄色日韩在线| 另类中文字幕国产精品| 国产精品乱战久久久| 亚洲aa在线| 一区二区91| 亚洲色图国产| 免费人成黄页网站在线一区二区| 成人日韩精品| 婷婷综合六月| 国产精品亚洲一区二区三区在线观看| 国产精品一区二区精品| 日本不卡一二三区黄网| 欧美+亚洲+精品+三区| 中文字幕在线免费观看视频| 精品三级在线| 中文在线免费视频| 91精品啪在线观看国产18| 欧美日韩尤物久久| 性欧美xxxx免费岛国不卡电影| 欧美精品高清|