欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

ApacheShiro1.2.4反序列化漏洞實(shí)例分析

Apache Shiro 1.2.4反序列化漏洞實(shí)例分析,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

按需定制開發(fā)可以根據(jù)自己的需求進(jìn)行定制,做網(wǎng)站、網(wǎng)站建設(shè)構(gòu)思過程中功能建設(shè)理應(yīng)排到主要部位公司做網(wǎng)站、網(wǎng)站建設(shè)的運(yùn)用實(shí)際效果公司網(wǎng)站制作網(wǎng)站建立與制做的實(shí)際意義

0x00 Apache Shiro

這個(gè)組件的漏洞很久之前就爆出來了,但是最近工作中又遇到了,剛好最近也在看Java反序列化的東西,所以決定拿出來再分析一下,期間也遇到了一些奇怪的問題。

網(wǎng)上的分析文章中大部分都是手動(dòng)添加了commons-collections4-4.0的依賴,目的是為了使用ysoserial生成的CommonsCollections2這個(gè)payload,然而我遇到的情況是使用了CommonsBeanutils1就可以直接打成功,所以這里我們不再重復(fù)網(wǎng)上對(duì)CommonsCollections2的分析了。

0x01 調(diào)試分析

調(diào)試環(huán)境:

JDK 1.8.0_72

Tomcat 8.0.30

首先我們把shiro的源碼clone回來,并切到有問題的分支上去。

git clone https://github.com/apache/shiro.git shiro-rootcd shiro-root
git checkout 1.2.0

為了能讓shiro自帶的sample跑起來,要對(duì)samples/web/pom.xml文件做一些修改,需要將jstl的版本改為1.2,并且刪掉servlet-api的scope字段。同時(shí)將jstl-1.2.jar放置在WEB-INF/lib下面。然后應(yīng)該就可以跑起來并且調(diào)試了。

我們將斷點(diǎn)打到org.apache.shiro.mgt.DefaultSecurityManager中的resolvePrincipals方法,并且發(fā)送一個(gè)帶有rememberMe Cookie的請(qǐng)求,應(yīng)該就可以斷下來了。

Apache Shiro 1.2.4反序列化漏洞實(shí)例分析

我們繼續(xù)跟進(jìn)這個(gè)getRememberedIdentity方法: 

Apache Shiro 1.2.4反序列化漏洞實(shí)例分析繼續(xù)一直跟到getRememberedSerializedIdentity方法: 

Apache Shiro 1.2.4反序列化漏洞實(shí)例分析在這個(gè)方法中,讀出了我們傳入的Cookie,并且進(jìn)行了base64解碼: 

Apache Shiro 1.2.4反序列化漏洞實(shí)例分析接下來shiro會(huì)調(diào)用convertBytesToPrincipals并將base64解碼后的字節(jié)數(shù)組作為參數(shù)傳入:

Apache Shiro 1.2.4反序列化漏洞實(shí)例分析

這里通過函數(shù)名也能猜出來,進(jìn)行了兩個(gè)操作,分別是解密和反序列化,我們先來看解密部分,經(jīng)過簡(jiǎn)單的調(diào)試后,發(fā)現(xiàn)是一個(gè)AES解密,并且存在一個(gè)預(yù)設(shè)秘鑰Base64.decode("kPH+bIxk5D2deZiIxcaaaA==");,在shiro自帶的sample中,并沒有通過其他的方式設(shè)置這個(gè)秘鑰,所以這里用的就是這個(gè)預(yù)設(shè)值。

而AES解密中遇到的IV也是從我們傳入的Cookie中的前幾個(gè)字節(jié)中獲取的,于是我們可以輕易的構(gòu)造出包含任意內(nèi)容的Cookie值,解密好的明文就是序列化的內(nèi)容,調(diào)用了deserialize進(jìn)行反序列化。

最終會(huì)調(diào)用到org.apache.shiro.io.DefaultSerializer#deserialize方法進(jìn)行反序列化:    
Apache Shiro 1.2.4反序列化漏洞實(shí)例分析

整個(gè)流程十分簡(jiǎn)單,簡(jiǎn)要概括一下就是:讀取cookie -> base64解碼 -> AES解密 -> 反序列化

所以我們的payload構(gòu)造起來也是十分的簡(jiǎn)單,完整的PoC我會(huì)放到我的GitHub上。

0x02 疑點(diǎn)解惑

在調(diào)試的過程中,遇到了一些問題,并沒有成功的彈出計(jì)算器,這里記錄一下。

1. 為什么本地搭建環(huán)境,使用CommonsBeanutils1打不成功,總是提示ClassNotFound異常?

這個(gè)問題我當(dāng)時(shí)調(diào)試了好久,一度以為是payload有問題或者shiro的代碼因?yàn)槟甏眠h(yuǎn)有了變化,因?yàn)楫?dāng)時(shí)遇到的case就是這個(gè)payload一發(fā)入魂的,表示十分的迷茫。后來發(fā)現(xiàn)了關(guān)鍵問題,我們從github上clone到的sample中,commons-beanutils這個(gè)依賴的版本是1.8.3,而ysoserial生成的payload的版本是1.9.2,所以在默認(rèn)的sample中是無法打成功的。于是我修改版本號(hào)到1.9.2,一發(fā)入魂。

所以遇到的那個(gè)案例中,實(shí)際的依賴環(huán)境版本可能也是這樣的吧,所以才能直接打成功。

2. 假如我的依賴中就是沒有高版本的commons-beanutils和commons-collections之類的包,怎么利用?

這個(gè)項(xiàng)目clone下來之后,可以看到是存在一個(gè)commons-collections的包的: 

Apache Shiro 1.2.4反序列化漏洞實(shí)例分析

但是使用ysoserial提供的CommonsCollections1是無法成功的,會(huì)爆出一個(gè)異常:

Apache Shiro 1.2.4反序列化漏洞實(shí)例分析這就十分的奇怪了,為什么偏偏無法反序列化byte array類型,調(diào)試了一下發(fā)現(xiàn)是在這里拋出的異常:

Apache Shiro 1.2.4反序列化漏洞實(shí)例分析

查了一下Java中Class.forName()以及ClassLoader.loadClass()的區(qū)別,發(fā)現(xiàn)forName()總是使用調(diào)用者的ClassLoader(),而loadClass()則是可以自己指定一個(gè)不同的ClassLoader。那shiro中的ClasssLoader是怎么來的?是通過Thread.currentThread().getContextClassLoader();獲取的,也就是WebappClassLoader。但是為啥提示無法加載byte array呢,搜索了一番看到了orange博客下面的討論,了解到了整個(gè)事情的真相:

Shiro resovleClass使用的是ClassLoader.loadClass()而非Class.forName(),而ClassLoader.loadClass不支持裝載數(shù)組類型的class。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。

當(dāng)前文章:ApacheShiro1.2.4反序列化漏洞實(shí)例分析
標(biāo)題路徑:http://chinadenli.net/article16/ppcedg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、定制開發(fā)、全網(wǎng)營(yíng)銷推廣、動(dòng)態(tài)網(wǎng)站、營(yíng)銷型網(wǎng)站建設(shè)、ChatGPT

廣告

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

外貿(mào)網(wǎng)站建設(shè)
99热中文字幕在线精品| 午夜精品成年人免费视频| 欧洲偷拍视频中文字幕| 日本99精品在线观看| 亚洲欧美国产精品一区二区| 亚洲黄色在线观看免费高清| 人妻露脸一区二区三区| 欧美成人黄色一区二区三区| 可以在线看的欧美黄片| 人人妻在人人看人人澡| 国产精品超碰在线观看| 五月婷婷六月丁香在线观看 | 欧美日韩视频中文字幕| 国产精品偷拍视频一区| 日韩性生活片免费观看| 亚洲中文字幕在线视频频道| 久久精品久久久精品久久| 日韩中文字幕狠狠人妻| 国产一级不卡视频在线观看| 亚洲欧美日韩精品永久| 99热在线播放免费观看| 九九视频通过这里有精品| 91精品国产av一区二区| 日本婷婷色大香蕉视频在线观看| 午夜福利网午夜福利网| 日韩中文字幕视频在线高清版 | 日韩精品毛片视频免费看| 欧美色婷婷综合狠狠爱| 久久机热频这里只精品| 亚洲视频一区二区久久久| 初尝人妻少妇中文字幕在线| 在线观看免费视频你懂的| 亚洲综合色婷婷七月丁香| 老鸭窝老鸭窝一区二区| 亚洲熟女精品一区二区成人| 欧美一区二区在线日韩| 青青操在线视频精品视频| 欧美尤物在线视频91| 一区二区不卡免费观看免费| 国产成人免费高潮激情电| 老司机精品线观看86|