版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Java反序列化練習(xí)試題附答案1.以下關(guān)于Java序列化,說(shuō)法錯(cuò)誤的是:A.要使某個(gè)類可以被序列化或反序列化,這個(gè)類需要實(shí)現(xiàn)Serializable或者Externalizable接口B.實(shí)現(xiàn)Serializable接口的類,必須實(shí)現(xiàn)readObject和writeObject方法(正確答案)C.實(shí)現(xiàn)Externalizable接口的類,必須實(shí)現(xiàn)readExternal和writeExternal方法D.序列化機(jī)制是用來(lái)將對(duì)象和字節(jié)序列數(shù)據(jù)流進(jìn)行相互轉(zhuǎn)換,從而便于進(jìn)行網(wǎng)絡(luò)傳輸或者存儲(chǔ)答案解析:實(shí)現(xiàn)Serializable接口的類,可以不必實(shí)現(xiàn)readObject和writeObject方法。2.以下關(guān)于Java序列化,說(shuō)法錯(cuò)誤的是:A.如果一個(gè)可序列化的類的成員不是基本類型,那這個(gè)引用類型也必須是可序列化的;否則,會(huì)導(dǎo)致此類不能序列化B.Java序列化算法不會(huì)重復(fù)序列化同一個(gè)對(duì)象,只會(huì)記錄已序列化對(duì)象的編號(hào)C.當(dāng)程序試圖序列化一個(gè)對(duì)象時(shí),會(huì)先檢查此對(duì)象是否已經(jīng)序列化過(guò),只有此對(duì)象從未(在此虛擬機(jī))被序列化過(guò),才會(huì)將此對(duì)象序列化為字節(jié)序列輸出D.如果序列化一個(gè)可變對(duì)象(對(duì)象內(nèi)的內(nèi)容可更改)后,更改了對(duì)象內(nèi)容,再次序列化,會(huì)再次將此對(duì)象轉(zhuǎn)換為字節(jié)序列。(正確答案)答案解析:如果序列化一個(gè)可變對(duì)象(對(duì)象內(nèi)的內(nèi)容可更改)后,更改了對(duì)象內(nèi)容,再次序列化,并不會(huì)再次將此對(duì)象轉(zhuǎn)換為字節(jié)序列,而只是保存序列化編號(hào)。3.以下關(guān)于Java序列化,說(shuō)法正確的是:A.使用transient修飾的屬性,序列化時(shí)會(huì)忽略此字段的值(正確答案)B.反序列化出的對(duì)象,被transient修飾的屬性的值是默認(rèn)值(正確答案)C.serialVersionUID表示序列化類的版本號(hào),用于校驗(yàn)序列化數(shù)據(jù)發(fā)送方和接收方對(duì)序列化類的一致性(正確答案)D.如果某個(gè)序列化類的serialVersionUID沒(méi)有指定,則它的默認(rèn)值是0L答案解析:如果某個(gè)序列化類的serialVersionUID沒(méi)有指定,Java會(huì)根據(jù)類的屬性、方法等結(jié)構(gòu)通過(guò)某種算法計(jì)算得到,不一定是0L。4.下列哪項(xiàng)是Java序列化數(shù)據(jù)的magicbytes?A.0xAF74B.0x7372C.0xACED(正確答案)D.0x7E7D5.以下關(guān)于Java反序列化漏洞,說(shuō)法正確的是?A.反序列化漏洞是因?yàn)槟繕?biāo)系統(tǒng)對(duì)來(lái)源不可信的數(shù)據(jù)進(jìn)行了反序列化處理(正確答案)B.反序列化漏洞如要達(dá)成遠(yuǎn)程代碼執(zhí)行的危害,還需要目標(biāo)環(huán)境中存在合適的反序列化利用鏈(正確答案)C.若目標(biāo)應(yīng)用程序?qū)τ脩艨煽氐臄?shù)據(jù)進(jìn)行了反序列化,就會(huì)導(dǎo)致遠(yuǎn)程代碼執(zhí)行的危害D.只要應(yīng)用程序保證各依賴版本為最新,即使程序本身存在反序列化漏洞,攻擊者也無(wú)法利用答案解析:反序列化如要達(dá)到遠(yuǎn)程代碼執(zhí)行的危害,還需要尋找合適的利用鏈;應(yīng)用程序保證各依賴版本為最新只能降低反序列化漏洞被利用的風(fēng)險(xiǎn),無(wú)法避免。6.下列哪些版本的CommonsCollections組件存在反序列化漏洞?A.3.1(正確答案)B.3.2.1(正確答案)C.3.2.2D.4.0(正確答案)答案解析:CommonsCollections在3.x<3.2.2以及4.0的版本范圍里存在反序列化漏洞7.關(guān)于CommonsCollections組件的反序列化漏洞,以下說(shuō)法正確的是?A.當(dāng)目標(biāo)Java應(yīng)用依賴庫(kù)里包含存在漏洞的CommonsCollections庫(kù)時(shí),即會(huì)導(dǎo)致遠(yuǎn)程代碼執(zhí)行B.ysoserial工具里關(guān)于CommonsCollections鏈的payload,利用核心都是依靠mons.collections.Transformer的實(shí)現(xiàn)類(正確答案)C.ysoserial工具里關(guān)于CommonsCollections鏈的payloadCommonsCollections1,對(duì)攻擊目標(biāo)的JDK版本沒(méi)有要求D.ysoserial里CommonsCollections2是針對(duì)CommonsCollections4.0版本的利用鏈(正確答案)答案解析:當(dāng)目標(biāo)Java應(yīng)用依賴庫(kù)里包含存在漏洞的CommonsCollections庫(kù),且對(duì)由攻擊者可控的數(shù)據(jù)進(jìn)行反序列化時(shí),即會(huì)造成任意代碼執(zhí)行;ysoserial工具里關(guān)于CommonsCollections鏈的payloadCommonsCollections1,需要目標(biāo)的JDK版本<8或者JDK8<=8u718.以下哪些方法調(diào)用處理由用戶可控的數(shù)據(jù)時(shí),可能會(huì)導(dǎo)致反序列化漏洞?A.java.io.ObjectInputStream類readObject方法(正確答案)B.java.beans.XMLDecoder類readObject方法(正確答案)C.org.yaml.snakeyaml.Yaml類load方法(正確答案)D.com.alibaba.fastjson.JSON類parseObject方法(正確答案)9.假如有個(gè)Exploit類,其代碼如下:
publicclassExploit{
privateStringvalue=getValue();
publicExploit(){
System.out.print("A");
}
publicstaticStringgetValue(){
System.out.print("B");
return"somevalue";
}
static{
System.out.print("C");
}
}
如果執(zhí)行
Class.forName("Exploit").newInstance()
加載并實(shí)例化此類,程序的輸出結(jié)果是?AABCCBA(正確答案)C10.假如有個(gè)Exploit類,其代碼如下:
publicclassExploit{
privateStringvalue=getValue();
publicExploit(){
System.out.print("A");
}
publicstaticStringgetValue(){
System.out.print("B");
return"somevalue";
}
static{
System.out.print("C");
}
}
如果執(zhí)行
Class.forName("Exploit")
加載此類,程序的輸出結(jié)果是?ABCCBAC(正確答案)11.下列關(guān)于CommonsBeanutils組件的反序列化問(wèn)題,以下說(shuō)法正確的是?A.當(dāng)目標(biāo)Java應(yīng)用依賴庫(kù)里包含存在漏洞的CommonsBeanutils庫(kù)時(shí),即會(huì)導(dǎo)致遠(yuǎn)程代碼執(zhí)行B.ysoserial工具里關(guān)于CommonsBeanutils鏈的payloadCommonsBeanutils1,其利用依賴于CommonsCollections組件(正確答案)C.ysoserial工具里關(guān)于CommonsBeanutils鏈的payloadCommonsBeanutils1可以適用于所有的CommonsBeanutils版本場(chǎng)景下的反序列化漏洞D.CommonsBeanutils組件的反序列化問(wèn)題沒(méi)有被修復(fù)(正確答案)答案解析:當(dāng)目標(biāo)Java應(yīng)用依賴庫(kù)里包含存在漏洞的CommonsBeanutils庫(kù),且對(duì)由攻擊者可控的數(shù)據(jù)進(jìn)行反序列化時(shí),即會(huì)導(dǎo)致遠(yuǎn)程代碼執(zhí)行;ysoserial工具里關(guān)于CommonsBeanutils鏈的payloadCommonsBeanutils1只適用于1.9.x版本。12.以下哪個(gè)ysoserialpayload可以在不執(zhí)行代碼或命令的情況下用作反序列化探測(cè):A.Jdk7u21B.JRMPClient(正確答案)C.JRMPListener(正確答案)D.URLDNS(正確答案)13.關(guān)于ysoserial工具,以下說(shuō)法正確的是:A.ysoserial只有生成反序列化利用payload的功能B.為了解決字節(jié)碼對(duì)Java版本的兼容性問(wèn)題,ysoserial源碼打包編譯時(shí)默認(rèn)會(huì)和jdk6版本兼容(正確答案)C.并不是所有的ysoserialpayload都是用來(lái)執(zhí)行任意代碼(正確答案)D.ysoserialpayload執(zhí)行命令時(shí)支持重定向等shell語(yǔ)法特性14.Java反射機(jī)制提供了以下哪些功能?A.在運(yùn)行時(shí)判斷一個(gè)對(duì)象所屬的類(正確答案)B.在運(yùn)行時(shí)構(gòu)造一個(gè)類的對(duì)象(正確答案)C.在運(yùn)行時(shí)判斷一個(gè)類所具有的成員變量和方法(正確答案)D.在運(yùn)行時(shí)調(diào)用一個(gè)對(duì)象的方法(正確答案)15.以下說(shuō)法正確的是:A.Java對(duì)象序列化后的數(shù)據(jù)可以通過(guò)ClassLoader.defineClass方法來(lái)加載B.使用ClassLoader.defineClass方法加載字節(jié)碼時(shí),可以不指定類名(正確答案)C.可以通過(guò)反射可以給一個(gè)類動(dòng)態(tài)添加屬性D.可以通過(guò)反射調(diào)用某一個(gè)類的private方法(正確答案)16.假如有個(gè)Exploit類,其代碼如下:
publicclassExploit{
privatestaticStringvalue=getValue();
publicExploit(){
System.out.print("A");
}
publicstaticStringgetValue(){
System.out.print("B");
return"somevalue";
}
static{
System.out.print("C");
}
}
如果執(zhí)行
Class.forName("Exploit")
加載此類,程序的輸出結(jié)果是?ABC(正確答案)CBAC1.CommonsBeanutilspayload在不同版本間進(jìn)行反序列化利用時(shí),存在什么坑點(diǎn)?如何解決?答案解析:不同版本間的CommonsBeanutilsmons.beanutils.BeanComparator這個(gè)類的serialVersionUID不一致,而這個(gè)類是反序列化鏈里會(huì)用到的一個(gè)類。如果序列化數(shù)據(jù)發(fā)送端和接收端反序列化類的serialVersionUID不一致,則會(huì)拋出異常而反序列化失敗。因此CommonsBeanutils鏈在利用的時(shí)候,需要注意保持版本的一致性。2.ysoserial工具反序列化在執(zhí)行命令的時(shí)候,存在哪些問(wèn)題?如何改進(jìn)?答案解析:Ysoserial工具命令執(zhí)行基本都是通過(guò)Runtime.getRuntime().exec(Stringcmd)這個(gè)方法,Runtime類的exec方法接收單個(gè)String作為參數(shù)進(jìn)行命令執(zhí)行時(shí)存在很多問(wèn)題,比如并不支持重定向等一些Shell語(yǔ)法特性。改進(jìn)方法:可以先讓目標(biāo)判斷操作系統(tǒng)類型(Windows/Linux),然后根據(jù)操作系統(tǒng)類型調(diào)用Runtime.getRuntime().exec(newString[]{“/bin/sh”,“-c”,cmd})或者Runtime.getRuntime().exec(newString[]{“cmd.exe”,“/c”,cmd})的方式來(lái)執(zhí)行命令。3.ysoserial工具直接運(yùn)行是生成payload序列化字節(jié)數(shù)據(jù),但如果想引入ysoserial,獲取一個(gè)payload序列化對(duì)象,代碼可以如何編寫(xiě)?答案解析:StringpayloadType="CommonsCollections6";
S
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版法律服務(wù)企業(yè)法務(wù)專員職位勞動(dòng)合同3篇
- 二零二五版房屋買賣合同范本下載涉及裝修及家具家電條款3篇
- 二零二五年時(shí)尚服飾品牌區(qū)域獨(dú)家代理銷售合同2篇
- 二零二五年度航空貨運(yùn)大客戶承運(yùn)合同范本3篇
- 二零二五年建筑材料出口銷售與綠色認(rèn)證合同3篇
- 二零二五版grc構(gòu)件生產(chǎn)、安裝與裝配式建筑推廣實(shí)施合同3篇
- 二零二五版技術(shù)開(kāi)發(fā)與成果轉(zhuǎn)化合同3篇
- 二零二五年建筑材料運(yùn)輸及安裝服務(wù)合同6篇
- 二零二五年度家具安裝與室內(nèi)空氣凈化合同2篇
- 二零二五版展覽館場(chǎng)地租賃合同范本(含展覽策劃服務(wù))3篇
- 公路工程施工現(xiàn)場(chǎng)安全檢查手冊(cè)
- 公司組織架構(gòu)圖(可編輯模版)
- 1汽輪機(jī)跳閘事故演練
- 陜西省銅川市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)
- 禮品(禮金)上交登記臺(tái)賬
- 北師大版七年級(jí)數(shù)學(xué)上冊(cè)教案(全冊(cè)完整版)教學(xué)設(shè)計(jì)含教學(xué)反思
- 2023高中物理步步高大一輪 第五章 第1講 萬(wàn)有引力定律及應(yīng)用
- 青少年軟件編程(Scratch)練習(xí)題及答案
- 浙江省公務(wù)員考試面試真題答案及解析精選
- 系統(tǒng)性紅斑狼瘡-第九版內(nèi)科學(xué)
- 全統(tǒng)定額工程量計(jì)算規(guī)則1994
評(píng)論
0/150
提交評(píng)論