成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

【成都網(wǎng)頁(yè)制作】Java反序列化安全實(shí)例解析-成都創(chuàng)新互聯(lián)官方網(wǎng)站

2022-12-31    分類(lèi): 網(wǎng)站建設(shè)

構(gòu)造惡意的序列化對(duì)象發(fā)送給目標(biāo)主機(jī):

執(zhí)行系統(tǒng)命令:

RedHat發(fā)布JBoss相關(guān)產(chǎn)品的解決方案

https://access.redhat.com/solutions/2045023

受影響的JBoss產(chǎn)品有:

Environment

Red Hat JBossA-MQ 6.x

Red Hat JBossBPM Suite (BPMS) 6.x

Red Hat JBossBRMS 6.x

Red Hat JBossBRMS 5.x

Red Hat JBossData Grid (JDG) 6.x

Red Hat JBossData Virtualization (JDV) 6.x

Red Hat JBossData Virtualization (JDV) 5.x

Red Hat JBossEnterprise Application Platform 6.x

Red Hat JBossEnterprise Application Platform 5.x

Red Hat JBossEnterprise Application Platform 4.3.x

Red Hat JBossFuse 6.x

Red Hat JBossFuse Service Works (FSW) 6.x

Red Hat JBossOperations Network (JBoss ON) 3.x

Red Hat JBossPortal 6.x

Red Hat JBossSOA Platform (SOA-P) 5.x

Red Hat JBossWeb Server (JWS) 3.x

案例三:Jenkins Remoting的相關(guān)API是用于實(shí)現(xiàn)分布式環(huán)境中master和slave節(jié)點(diǎn)或者master和CLI的訪(fǎng)問(wèn),API沒(méi)有身份認(rèn)證并且支持序列化對(duì)象。

CVE-2016-0788通過(guò)Jenkins Remoting巧妙地開(kāi)啟JRMP,JRMP觸發(fā)反序列化操作,從而進(jìn)行漏洞的利用。作者已經(jīng)提供了完整利用POC:

在遠(yuǎn)程服務(wù)器開(kāi)啟JRMI端口:

連接遠(yuǎn)程服務(wù)端口,發(fā)送惡意序列化數(shù)據(jù)包:

這樣在Jenkins的根目錄就會(huì)生成一個(gè)pwned文件。

受影響的版本:

AllJenkinsmainlinereleasesuptoandincluding1.649

AllJenkinsLTSreleasesuptoandincluding1.642.1

漏洞防御

1、反序列化對(duì)象白名單控制,在resolveClass方法中校驗(yàn)對(duì)象名字。

public classLookAheadObjectInputStream
extends

ObjectInputStream {

public

LookAheadObjectInputStream(InputStreaminputStream)

throws

IOException{

super

(inputStream);

}

/**

* Only deserializeinstances of our expected Bicycle class

*/

@Override

protectedClass resolveClass(ObjectStreamClass desc)throws

IOException,

ClassNotFoundException {

if(!desc.getName().equals(Bicycle.class

.getName())) {

throw new

InvalidClassException(

"Unauthorized deserializationattempt"

,desc.getName());

}

return super

.resolveClass(desc);

}

}

2、序列化數(shù)據(jù)采用對(duì)稱(chēng)加密進(jìn)行傳輸,接口調(diào)用增加身份認(rèn)證。(此種方法僅僅能提升攻擊成本)

3、因?yàn)樾蛄谢瘷C(jī)制不能保證數(shù)據(jù)的完整和和保密性,如果類(lèi)中存在敏感數(shù)據(jù)并且那么這個(gè)類(lèi)還需要序列化,需要在特定對(duì)象的一個(gè)域上關(guān)閉serialization,在這個(gè)域前加上關(guān)鍵字transient即可。

什么是序列化

序列化 (Serialization)是指將對(duì)象的狀態(tài)信息轉(zhuǎn)換為可以存儲(chǔ)或傳輸?shù)男问降倪^(guò)程。在序列化期間,對(duì)象將其當(dāng)前狀態(tài)寫(xiě)入到臨時(shí)或持久性存儲(chǔ)區(qū)。以后,可以通過(guò)從存儲(chǔ)區(qū)中讀取或反序列化對(duì)象的狀態(tài),重新創(chuàng)建該對(duì)象。

簡(jiǎn)單來(lái)說(shuō):

序列化: 將數(shù)據(jù)結(jié)構(gòu)或?qū)ο筠D(zhuǎn)換成二進(jìn)制串的過(guò)程。

反序列化:將在序列化過(guò)程中所生成的二進(jìn)制串轉(zhuǎn)換成數(shù)據(jù)結(jié)構(gòu)或者對(duì)象的過(guò)程。

下面是將字符串對(duì)象先進(jìn)行序列化,存儲(chǔ)到本地文件,然后再通過(guò)反序列化進(jìn)行恢復(fù)的樣例代碼:

public static void main(String args[]) throws Exception {

String obj ="hello world!";

//將序列化對(duì)象寫(xiě)入文件object.db中

FileOutputStream fos =new FileOutputStream("object.db");

ObjectOutputStream os= new ObjectOutputStream(fos);

os.writeObject(obj);

os.close();

//從文件object.db中讀取數(shù)據(jù)

FileInputStream fis =new FileInputStream("object.db");

ObjectInputStream ois= new ObjectInputStream(fis);

//通過(guò)反序列化恢復(fù)對(duì)象obj

String obj2 =(String)ois.readObject();

ois.close();

}

反序列化漏洞原理

反序列化漏洞的本質(zhì)就是反序列化機(jī)制打破了數(shù)據(jù)和對(duì)象的邊界,導(dǎo)致攻擊者注入的惡意序列化數(shù)據(jù)在反序列化過(guò)程中被還原成對(duì)象,控制了對(duì)象就可能在目標(biāo)系統(tǒng)上面執(zhí)行攻擊代碼。Java序列化應(yīng)用于RMI JMX JMS 技術(shù)中。

漏洞危害

案例一:Apache ActiveMQ 5.12.0 遠(yuǎn)程代碼執(zhí)行漏洞(JMS)

Apache ActiveMQ 5.13.0之前5.x版本中存在安全漏洞,該漏洞源于程序未能限制可在代理中序列化的類(lèi)。遠(yuǎn)程攻擊者可借助特制的序列化的Java Message Service (JMS) ObjectMessage對(duì)象利用該漏洞執(zhí)行任意代碼。

受到影響的消息系統(tǒng)如下:

Apache ActiveMQ 5.12.0 and earlier

HornetQ 2.4.0 and earlier

Oracle OpenMQ 5.1 and earlier

IBM Websphere MQ 8.0.0.4 and earlier

Oracle Weblogic 12c and earlier

Pivotal RabbitMQ JMS client 1.4.6 and earlier

IBM MessageSight MessageSight V1.2 JMSClient and earlier

SwiftMQ JMS client 9.7.3 and earlier

Apache ActiveMQ Artemis client 1.2.0 and earlier

Apache Qpid JMS client 0.9.0 and earlier

Amazon SQS Java Messaging Library 1.0.0 and earlier

案例二:JBoss 反序列化漏洞(JMX)

Jboss利用的是HTTP協(xié)議,可以在任何端口上運(yùn)行,默認(rèn)安裝在8080端口中。JMX是一個(gè)java的管理協(xié)議,在Jboss中的JMXInvokerServlet可以使用HTTP協(xié)議與其進(jìn)行通話(huà)。這一通信功能依賴(lài)于java的序列化類(lèi)。

本地構(gòu)造惡意的序列化對(duì)象

分享標(biāo)題:【成都網(wǎng)頁(yè)制作】Java反序列化安全實(shí)例解析-成都創(chuàng)新互聯(lián)官方網(wǎng)站
鏈接分享:http://jinyejixie.com/news/227187.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷(xiāo)、ChatGPT網(wǎng)頁(yè)設(shè)計(jì)公司、App設(shè)計(jì)、商城網(wǎng)站、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

猜你還喜歡下面的內(nèi)容

網(wǎng)站托管運(yùn)營(yíng)

網(wǎng)站建設(shè)知識(shí)

行業(yè)建站

淮北市| 定兴县| 信阳市| 门源| 平定县| 乐至县| 富民县| 珲春市| 双流县| 修文县| 太康县| 平原县| 铜梁县| 诏安县| 彩票| 晴隆县| 邓州市| 彭泽县| 毕节市| 抚顺市| 岑巩县| 霞浦县| 那坡县| 宽城| 济南市| 临澧县| 皮山县| 泗阳县| 淮北市| 江门市| 北川| 务川| 敦化市| 资兴市| 句容市| 永嘉县| 凤阳县| 磴口县| 紫阳县| 保康县| 扎赉特旗|