趙長(zhǎng)松,余華興,賀 勝,董 緯,王 玉
(國(guó)網(wǎng)重慶市電力公司江北供電公司,重慶401147)
Java反序列化漏洞利用工具的實(shí)現(xiàn)
趙長(zhǎng)松,余華興,賀 勝,董 緯,王 玉
(國(guó)網(wǎng)重慶市電力公司江北供電公司,重慶401147)
通過(guò)對(duì)Java反序列化漏洞形成原因及利用原理的研究,結(jié)合RMI編程技術(shù),自主設(shè)計(jì)漏洞掃面及漏洞利用算法,并實(shí)現(xiàn)了針對(duì)WebLogic中間件的漏洞利用工具,包含自動(dòng)掃描探測(cè)漏洞以及系統(tǒng)命令執(zhí)行、文件上傳等功能。通過(guò)實(shí)際測(cè)試,該工具能準(zhǔn)確地發(fā)現(xiàn)存在的漏洞主機(jī)并有效地利用漏洞執(zhí)行相關(guān)操作,在一定程度上可幫助運(yùn)維人員及時(shí)修補(bǔ)安全隱患,提高業(yè)務(wù)系統(tǒng)防護(hù)水平。
反序列化;RMI;漏洞掃描;漏洞利用;WebLogic
Java是一種可以編寫(xiě)跨平臺(tái)應(yīng)用程序的純面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。該語(yǔ)言技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性,廣泛應(yīng)用于PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng)。與傳統(tǒng)程序不同,Java語(yǔ)言在推出之際就作為一種開(kāi)放的技術(shù)。全球數(shù)以萬(wàn)計(jì)的Java開(kāi)發(fā)公司被要求所設(shè)計(jì)的Java軟件必須相互兼容?!癑ava語(yǔ)言靠群體的力量而非公司的力量”是Sun公司的口號(hào)之一,并獲得了廣大軟件開(kāi)發(fā)商的認(rèn)同。
序列化就是把對(duì)象轉(zhuǎn)換成字節(jié)流,便于保存在內(nèi)存、文件、數(shù)據(jù)庫(kù)中;反序列化即逆過(guò)程,由字節(jié)流還原成對(duì)象[1]。Java中的ObjectOutputStream類的writeObject()方法可以實(shí)現(xiàn)序列化,ObjectInput Stream類的readObject()方法用于反序列化。如果Java應(yīng)用對(duì)用戶輸入,即不可信數(shù)據(jù)做了反序列化處理,那么攻擊者可以通過(guò)構(gòu)造惡意輸入,讓反序列化產(chǎn)生非預(yù)期的對(duì)象,非預(yù)期的對(duì)象在產(chǎn)生過(guò)程中就有可能帶來(lái)任意代碼執(zhí)行[2-4]。
基于Java語(yǔ)言的應(yīng)用系統(tǒng)在國(guó)內(nèi)的應(yīng)用范圍比較廣,支撐著很多企業(yè)的核心業(yè)務(wù)。因此,2015年11月6日,F(xiàn)oxGlove Security安全團(tuán)隊(duì)發(fā)布的博客中介紹的Java反序列化漏洞產(chǎn)生了巨大影響。Java反序列化漏洞是利用Apache Commons Collec tions這個(gè)常用的Java庫(kù)來(lái)實(shí)現(xiàn)任意代碼執(zhí)行,可以用來(lái)攻擊最新版的WebLogic,WebSphere,JBoss,Jen kins,OpenNMS等Java應(yīng)用。Apache Commons Col lections包含了很多開(kāi)源的工具,用于解決平時(shí)編程經(jīng)常會(huì)遇到的問(wèn)題,減少重復(fù)勞動(dòng)。該漏洞出現(xiàn)的根源在Apache Commons Collections組件中,對(duì)于集合的操作存在可以進(jìn)行反射調(diào)用的方法,并且Ob jectInputStream類在反序列化時(shí),沒(méi)有對(duì)生成對(duì)象的類型進(jìn)行限制以及任何校驗(yàn)。
2.1 工具簡(jiǎn)介
Java反序列化漏洞利用工具是基于Java反序列化漏洞,針對(duì)WebLogic中間件進(jìn)行漏洞利用。在基于Java的分布式應(yīng)用中,遠(yuǎn)程方法調(diào)用(remote method invocation,RMI)技術(shù)默認(rèn)使用序列化和反序列化來(lái)完成所有的交互。此外,WebLogic是通過(guò)T3協(xié)議來(lái)傳輸序列化的類,只要能訪問(wèn)WebLogic,就可以使用,不需要加載遠(yuǎn)程類。因此,利用RMI技術(shù)編寫(xiě)包含Apache Commons Collections組件的接口,并通過(guò)T3協(xié)議來(lái)完成工具和服務(wù)器之間的通信,就可以利用漏洞完成相關(guān)操作[5]。
RMI是jdk1.1中引入的分布式對(duì)象軟件包,支持存儲(chǔ)于不同地址空間的程序級(jí)對(duì)象之間彼此進(jìn)行通信,實(shí)現(xiàn)遠(yuǎn)程對(duì)象之間的無(wú)縫遠(yuǎn)程。RMI目前使用Java遠(yuǎn)程消息交換協(xié)議(java remote messaging protocol,JRMP)進(jìn)行通信,其開(kāi)發(fā)的應(yīng)用系統(tǒng)可以部署在任何支持Java運(yùn)行環(huán)境(java run environ ment,JRE)的平臺(tái)上。此外,RMI可利用標(biāo)準(zhǔn)Java本機(jī)方法接口JNI與現(xiàn)有的和原有的系統(tǒng)相連接。RMI還可利用標(biāo)準(zhǔn)JDBC包與現(xiàn)有的關(guān)系數(shù)據(jù)庫(kù)連接[6]。RMI/JNI和RMI/JDBC相結(jié)合,可使RMI與目前使用非Java語(yǔ)言的現(xiàn)有服務(wù)器進(jìn)行通信,而且在需要時(shí)可擴(kuò)展Java在這些服務(wù)器上的使用。
RMI工作過(guò)程如圖1所示。RMI由4個(gè)主要的類組成:遠(yuǎn)程對(duì)象的本地接口、遠(yuǎn)程對(duì)象實(shí)現(xiàn)、RMI客戶機(jī)和RMI服務(wù)器。RMI服務(wù)器生成遠(yuǎn)程對(duì)象實(shí)現(xiàn)的1個(gè)實(shí)例,并用1個(gè)專有的URL注冊(cè)。RMI客戶機(jī)在遠(yuǎn)程RMI服務(wù)器上查找服務(wù)對(duì)象,并將它轉(zhuǎn)換成本地接口類型。其中RMI客戶機(jī)中stub程序扮演著遠(yuǎn)程服務(wù)器對(duì)象的代理角色,使該對(duì)象可被客戶激活。遠(yuǎn)程引用層處理語(yǔ)義、管理單一或多重對(duì)象的通信,決定調(diào)用是應(yīng)發(fā)往1個(gè)還是多個(gè)服務(wù)器。傳輸層管理實(shí)際的連接,并且追蹤可以接受方法調(diào)用的遠(yuǎn)程對(duì)象。服務(wù)器端的Skeleton程序完成對(duì)服務(wù)器對(duì)象實(shí)際的方法調(diào)用,并獲取返回值。返回值向下經(jīng)遠(yuǎn)程引用層、服務(wù)器端的傳輸層傳遞回客戶端,再向上經(jīng)傳輸層和遠(yuǎn)程調(diào)用層返回[7]。
圖1 RMI工作過(guò)程
2.2 工具功能簡(jiǎn)介
Java反序列化漏洞利用工具采用Java RMI技術(shù),利用Java反序列化漏洞原理,對(duì)運(yùn)行有WebLog ic中間件的主機(jī)進(jìn)行漏洞掃描,并利用存在的漏洞實(shí)現(xiàn)進(jìn)行命令執(zhí)行等功能[8]。
工具通過(guò)解析用戶輸入的主機(jī)地址、網(wǎng)段、端口號(hào)、線程數(shù)量等信息,自動(dòng)生成任務(wù)隊(duì)列,在調(diào)度算法的作用下對(duì)目標(biāo)進(jìn)行掃描探測(cè),測(cè)試漏洞是否存在,并及時(shí)輸出反饋探測(cè)結(jié)果,有助于管理人員及時(shí)發(fā)現(xiàn)并修補(bǔ)相關(guān)漏洞。此外,工具還提供了漏洞利用功能,對(duì)存在漏洞的主機(jī)進(jìn)行文件上傳、命令執(zhí)行等操作,進(jìn)一步驗(yàn)證漏洞的真實(shí)性[9]。
本文所介紹的Java反序列化漏洞利用工具,包含漏洞掃描以及漏洞利用模塊兩大部分。其使用流程如圖2所示。
首先,操作人員啟動(dòng)漏洞掃描模塊,在指定的輸入框內(nèi)輸入所需要掃描的多個(gè)目標(biāo)地址或網(wǎng)段、相應(yīng)的端口范圍,以及掃描時(shí)所需的線程數(shù)量,并以逗號(hào)進(jìn)行分隔。而后,點(diǎn)擊“掃描”按鈕開(kāi)始掃描。工具會(huì)根據(jù)相應(yīng)算法生成任務(wù)隊(duì)列,在調(diào)度算法的調(diào)度管理下進(jìn)行掃描工作,再將掃描進(jìn)度以及存在漏洞的主機(jī)信息,如IP地址、端口號(hào)、操作系統(tǒng)類型等輸出顯示。當(dāng)操作人員得到存在漏洞的主機(jī)信息時(shí),可使用漏洞利用模塊對(duì)漏洞進(jìn)行進(jìn)一步驗(yàn)證以及實(shí)現(xiàn)執(zhí)行系統(tǒng)命令、文件上傳等功能[10]。
圖2 工具使用過(guò)程
4.1 漏洞掃描模塊
漏洞掃描模塊旨在根據(jù)操作人員輸入的目標(biāo)地址信息(包含網(wǎng)段、地址范圍等)以及端口信息,自動(dòng)生成掃描任務(wù)隊(duì)列,并在調(diào)度程序的作用下進(jìn)行掃描、探測(cè)漏洞信息,并將掃描結(jié)果返回輸出。該模塊主要包含輸入數(shù)據(jù)處理子模塊、作業(yè)調(diào)度子模塊、漏洞探測(cè)子模塊等3部分。其主要結(jié)構(gòu)如圖3所示。
圖3 漏洞掃描模塊結(jié)構(gòu)圖
1)輸入數(shù)據(jù)處理子模塊
輸入數(shù)據(jù)處理子模塊旨在根據(jù)操作員輸入的信息,自動(dòng)生成任務(wù)隊(duì)列,為作業(yè)調(diào)度子模塊提供作業(yè)信息。其中,IP地址輸入信息支持多地址、多網(wǎng)段輸入,各個(gè)地址及網(wǎng)段之間用“,”分隔,如“192.168.1.1,192.168.1.2,192.168.3.0/24”;端口輸入信息支持多端口輸入,各個(gè)端口之間用“,”分隔,如“7001,7002,7010-7020”。操作員輸入完成后,工具會(huì)根據(jù)不同的作業(yè)調(diào)度算法生成不同的作業(yè)隊(duì)列。
①“線程-主機(jī)”算法作業(yè)隊(duì)列
“線程-主機(jī)”算法作業(yè)隊(duì)列由主機(jī)地址信息隊(duì)列和主機(jī)端口信息隊(duì)列組成。
主機(jī)地址信息隊(duì)列主要存放目標(biāo)主機(jī)IP地址信息,通過(guò)對(duì)IP地址輸入信息進(jìn)行解析并生成。
首先,對(duì)非空的IP地址輸入信息按“,”進(jìn)行分割。而后,逐一判斷分割后的子信息是否為一個(gè)單獨(dú)的IP地址:若是單獨(dú)的IP地址,則加入到主機(jī)地址信息隊(duì)列;若不是單獨(dú)的IP地址,則對(duì)該子信息按“/”分割,分離出網(wǎng)絡(luò)號(hào)和子網(wǎng)掩碼。最后,通過(guò)網(wǎng)絡(luò)號(hào)和子網(wǎng)掩碼位數(shù)計(jì)算出該網(wǎng)段中所有IP地址,并逐一加入到主機(jī)地址信息隊(duì)列中。
主機(jī)端口信息隊(duì)列主要存放目標(biāo)主機(jī)端口信息,通過(guò)對(duì)端口輸入信息進(jìn)行解析并生成。
首先,對(duì)非空的端口輸入信息按“,”進(jìn)行分割。而后,逐一判斷分割后的子信息是否為一個(gè)單獨(dú)的端口:若是單獨(dú)的端口信息,則加入到主機(jī)端口信息隊(duì)列;若不是單獨(dú)的端口,則對(duì)該子信息按“-”分割,分離出其實(shí)端口號(hào)和結(jié)束端口號(hào)。最后,計(jì)算出該端口范圍中所包含的端口信息,并逐一加入到主機(jī)端口信息隊(duì)列中。
②“線程-端口”算法作業(yè)隊(duì)列
“線程-端口”算法作業(yè)隊(duì)列僅有一個(gè)作業(yè)信息隊(duì)列,隊(duì)列中每個(gè)元素包含1個(gè)主機(jī)IP地址信息和1個(gè)端口信息。該隊(duì)列生成方法與“線程-主機(jī)”算法作業(yè)隊(duì)列類似,將主機(jī)地址信息隊(duì)列中每個(gè)IP地址和主機(jī)端口信息隊(duì)列中所有端口進(jìn)行對(duì)應(yīng),形成作業(yè)信息隊(duì)列。
2)作業(yè)調(diào)度子模塊
作業(yè)調(diào)度子模塊旨在根據(jù)不同的調(diào)度算法為作業(yè)隊(duì)列中的作業(yè)分配線程進(jìn)行處理[11]。
①“線程-主機(jī)”調(diào)度算法
“線程-主機(jī)”調(diào)度算法是將主機(jī)地址信息隊(duì)列中某1個(gè)地址分配給1個(gè)線程,由該線程完成該地址所有端口的掃描任務(wù)。其算法流程如圖4所示。
首先,判斷當(dāng)前線程是否已達(dá)到操作員要求的線程數(shù)上限:若已達(dá)到,則等待線程退出;若未達(dá)到,則新建線程。而后,線程判斷目前主機(jī)地址信息隊(duì)列是否為空:若為空,則線程退出;若不為空,則從主機(jī)地址信息隊(duì)列中取出該地址信息,并和主機(jī)端口信息中所有端口信息進(jìn)行組合后,交由漏洞探測(cè)子模塊進(jìn)行漏洞探測(cè),所有端口均已探測(cè)后,線程退出。待所有線程退出且主機(jī)地址信息隊(duì)列為空時(shí),調(diào)度算法退出,掃描工作完成。
圖4 “線程-主機(jī)”調(diào)度算法流程圖
②“線程-端口”調(diào)度算法
“線程-端口”調(diào)度算法是將作業(yè)信息隊(duì)列中每個(gè)作業(yè)分配給1個(gè)線程,每個(gè)線程只負(fù)責(zé)1個(gè)地址1個(gè)端口的掃描任務(wù)。
首先,判斷當(dāng)前線程是否已達(dá)到操作員要求線程數(shù)上限:若已達(dá)到,則等待線程退出;若未達(dá)到,則新建線程。而后,線程判斷目前作業(yè)信息隊(duì)列是否為空:若為空,則線程退出;若不為空,則從作業(yè)信息隊(duì)列中取出1條作業(yè)信息,將其中的地址信息和端口信息交漏洞探測(cè)子模塊進(jìn)行漏洞探測(cè),探測(cè)完畢后線程退出。待所有線程退出且作業(yè)信息隊(duì)列為空時(shí),調(diào)度算法退出,掃描工作完成[12]。
3)漏洞探測(cè)子模塊
漏洞探測(cè)子模塊旨在根據(jù)作業(yè)調(diào)度子模塊中傳送的地址信息和端口信息,進(jìn)行漏洞探測(cè)驗(yàn)證,并將結(jié)果反饋顯示。
首先,根據(jù)地址信息和端口信息連接目標(biāo)主機(jī),上傳漏洞驗(yàn)證包,并進(jìn)行服務(wù)注冊(cè)操作。若系統(tǒng)報(bào)錯(cuò),并經(jīng)過(guò)重連測(cè)試后仍不成功,則斷開(kāi)連接,并退出;若系統(tǒng)不報(bào)錯(cuò)則遠(yuǎn)程執(zhí)行系統(tǒng)命令,如“whoami”。若執(zhí)行成功則說(shuō)明存在該漏洞,工具在顯示輸出目標(biāo)主機(jī)信息后斷開(kāi)連接;若命令執(zhí)行不成功則斷開(kāi)連接。
4.2 漏洞利用模塊
漏洞掃描模塊主要功能是利用漏洞原理,對(duì)存在漏洞的主機(jī)進(jìn)行命令執(zhí)行、文件上傳等操作。該模塊主要包含目標(biāo)主機(jī)連接子模塊、命令執(zhí)行子模塊、文件上傳子模塊等3部分其主要結(jié)構(gòu)如圖5所示[13]。
圖5 漏洞利用模塊結(jié)構(gòu)圖
1)主機(jī)連接子模塊
主機(jī)連接子模塊為整個(gè)漏洞利用模塊的前驅(qū)模塊,其功能是根據(jù)操作人員輸入的目標(biāo)主機(jī)信息(含IP地址、端口號(hào)、操作系統(tǒng)類型),連接目標(biāo)主機(jī),將已經(jīng)編譯好的包含函數(shù)接口的jar包通過(guò)WebLogic中T3協(xié)議上傳至目標(biāo)主機(jī),并在目標(biāo)主機(jī)上注冊(cè)綁定已上傳的jar包服務(wù)。該jar包主要包括命令執(zhí)行接口和文件上傳接口,如圖6所示。此外,該子模塊還負(fù)責(zé)在連接斷開(kāi)時(shí)解綁并刪除目標(biāo)主機(jī)上的jar包服務(wù)。
圖6 服務(wù)接口定義
2)系統(tǒng)命令執(zhí)行子模塊
系統(tǒng)命令執(zhí)行子模塊在主機(jī)連接子模塊成功的前提下進(jìn)行操作。其主要功能為通過(guò)本地遠(yuǎn)程調(diào)用已注冊(cè)的服務(wù)中命令執(zhí)行功能,執(zhí)行操作人員所輸入的命令,并回顯命令執(zhí)行結(jié)果。
3)文件上傳子模塊
文件上傳子模塊同樣是在主機(jī)連接子模塊成功的前提下進(jìn)行操作。其主要功能為通過(guò)本地遠(yuǎn)程調(diào)用已注冊(cè)的服務(wù)中文件讀寫(xiě)功能,將操作人員所指定的文件內(nèi)容寫(xiě)在目標(biāo)主機(jī)指定的目錄下,實(shí)現(xiàn)文件上傳功能[14]。
5.1 實(shí)踐環(huán)境部署
本次實(shí)踐在虛擬機(jī)上進(jìn)行,目標(biāo)主機(jī)IP為192.168.56.100,操作系統(tǒng)為Windows Server 2003 SP2,安裝WebLogic 10.36,服務(wù)端口7001。工具運(yùn)行機(jī)IP為192.168.56.1,操作系統(tǒng)為win10專業(yè)版,安裝Java 8.0(工作版本為1.8.0_60-b27)。
5.2 工具運(yùn)行實(shí)踐
啟動(dòng)工具,對(duì)192.168.99,192.168.100,192.168.101這3個(gè)地址的7000-7010號(hào)端口進(jìn)行掃描,總計(jì)任務(wù)量33個(gè),掃描線程3個(gè)。掃描結(jié)果如圖7所示,發(fā)現(xiàn)存在漏洞的主機(jī)IP地址為192.168.56.100,端口為7001,操作系統(tǒng)為Windows。
圖7 漏洞掃描
根據(jù)掃描結(jié)果進(jìn)行漏洞利用,執(zhí)行系統(tǒng)命令“net user”,其結(jié)果如圖8所示。上傳java_test.txt文件至目標(biāo)主機(jī)“C:\”下,執(zhí)行結(jié)果如圖9所示[15]。
圖8 命令執(zhí)行
圖9 文件上傳
5.3 存在的不足與改進(jìn)
在工具的實(shí)踐過(guò)程中,利用工具對(duì)存在漏洞的虛擬服務(wù)器進(jìn)行漏洞掃描和利用,能較為真實(shí)地模擬實(shí)際運(yùn)行環(huán)境,充分驗(yàn)證工具漏洞掃描模塊的準(zhǔn)確性和漏洞利用模塊的穩(wěn)定性。然而,該工具僅針對(duì)WebLogic中間件進(jìn)行掃描和利用,目標(biāo)環(huán)境較為單一,可逐步增加對(duì)Jenkins,Jboss,WebSphere等常用中間件的支持。
本文針對(duì)2015年年底發(fā)布的Java反序列化漏洞進(jìn)行了深入分析。在對(duì)漏洞原理進(jìn)行深入研究的基礎(chǔ)上,給出了基于Java反序列化漏洞掃描利用工具的設(shè)計(jì),并且就漏洞掃描模塊及漏洞利用模塊的實(shí)現(xiàn)進(jìn)行了比較詳細(xì)的闡述。在工具實(shí)踐環(huán)節(jié),筆者也通過(guò)搭建虛擬服務(wù)器模擬真實(shí)運(yùn)行環(huán)境,并利用工具成功發(fā)現(xiàn)漏洞、利用漏洞,達(dá)到預(yù)期目標(biāo)。
[1] 肖波,陳正學(xué).基于JAVA的序列化應(yīng)用研究[J].智能計(jì)算機(jī)與應(yīng)用,2008(6):53-55.
[2] 晏立,沈銳.Java序列化技術(shù)的探討[J].紅河學(xué)院學(xué)報(bào),2011(4):37-39.
[3] 朱建紅,陸保國(guó).基于對(duì)象序列化技術(shù)的數(shù)據(jù)分發(fā)系統(tǒng)[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2014(1):49-50.
[4] 許暉.應(yīng)用XML實(shí)現(xiàn)Java對(duì)象序列化技術(shù)簡(jiǎn)述[C]//中國(guó)計(jì)算機(jī)學(xué)會(huì)計(jì)算機(jī)應(yīng)用專業(yè)委員會(huì).Java技術(shù)及應(yīng)用的進(jìn)展——第七屆中國(guó)Java技術(shù)及應(yīng)用交流大會(huì)文集.北京:[出版者不詳],2004:10.
[5] 佚名.Lib之過(guò)?Java反序列化漏洞通用利用分析[EB/OL].(2015-11-12)[2016-09-10].http://www.secpulse.com/archives/40420.html.
[6] 戴亮,方曉勤,李麗.一種新的基于序列化的Java RMI方法[J].計(jì)算機(jī)工程,2006,32(22):99-101.
[7] 高雅俠,鄒海榮.基于Java的RMI技術(shù)的研究與應(yīng)用[J].計(jì)算機(jī)與數(shù)字工程,2011,39(8):174-177.
[8] 劉楠,金護(hù)平.RMI分布式對(duì)象技術(shù)的研究與應(yīng)用[J].航空計(jì)算技術(shù),2009,39(1):142-145.
[9] BREG F,POLYCHRONOPOULOSC D.Java virtualma chine support for object serialization[C]//John Wiley&Sons,Ltd.,2001:173-180.
[10]LOERTSCHER D V.The library learning commons col lection is core-or is it?[J].Teacher Librarian,2014,41(4):48-63.
[11]毛莉,劉海.WebLogic安全構(gòu)架及安全技術(shù)應(yīng)用[J].計(jì)算機(jī)技術(shù)與發(fā)展,2004,14(9):56-59.
[12]夏家莉,陳輝,楊兵.一種動(dòng)態(tài)優(yōu)先級(jí)實(shí)時(shí)任務(wù)調(diào)度算法[J].計(jì)算機(jī)學(xué)報(bào),2012,35(12):2 685-2 695.
[13]CALLEJA G,PASTOR R.A dispatching algorithm for flexible job shop scheduling with transfer batches:an in dustrial application[J].Production Planning&Control,2014,25(2):93-109.
[14]Breenmachine.What Do WebLogic,WebSphere,JBoss,Jenkins,OpenNMS,and Your Application Have in Com mon?This Vulnerability[EB/OL].(2015-11-16)[2016-09-10].https://foxglovesecurity.com/2015/11/06/what-do-WebLogic-websphere-jboss-jen kins-opennms-and-your-application-h(huán)ave-incommon-this-vulnerability.
[15]張海南.用WebLogic中間件構(gòu)架應(yīng)用系統(tǒng)[D].南京:南京理工大學(xué),2004.
[16]曾雅琳,郭斌.基于Java的GUI設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與現(xiàn)代化,2005(10):116-117.
A Study on the Creation of the De Serialized Tool of the Exploitation of Vulnerabilities of Java
ZHAO Changsong,YU Huaxing,HE Sheng,DONGWei,WANG Yu
(Jiangbei Power Supply Branch of State Grid Chongqing Electric Power Company,Chongqing 401147,P.R.China)
Based on the causes and the exploitation principles of the de serialized vulnerabilities of Java,in combina tion with the RMIprogramming technique,this paper introduces a self designed algorithm for the scanning and ex ploiting of vulnerabilities,which can help create a tool of the exploitation of vulnerabilities for theWebLogicmiddle ware with such functions as automatically scanning and detecting vulnerabilities,implementing system commands and uploading files.Practical tests have shown that the tool can accurately discover hosts with vulnerabilities and carry out relevantoperations by exploiting them,which can help operation and maintenance staffmembers patch po tential safety hazards and improve their professional skills in the system protection.
deserialization;RMI;vulnerability scanning;exploitation of vulnerabilities;WebLogic
TP312.2
A
1008 8032(2017)03 0049 05
2016-11-03
該文獲重慶市電機(jī)工程學(xué)會(huì)2016年學(xué)術(shù)年會(huì)優(yōu)秀論文二等獎(jiǎng)
趙長(zhǎng)松(1987-),工程師,主要從事信息安全工作。