關(guān)于shiro無(wú)cc鏈利用雜談?dòng)涗?/h1>

0x1題記

很早之前在打shiro遇見(jiàn)過(guò)這么情況沈自,有key無(wú)利用鏈劫拗,那段時(shí)間又出來(lái)了一個(gè)shiro無(wú)cc利用鏈,但是在實(shí)際打時(shí)好時(shí)壞勺疼,想研究下為什么教寂,最近有空記錄下吧,當(dāng)時(shí)用的工具應(yīng)該是這個(gè)执庐。


image.png

0x2環(huán)境

引入shiro必要依賴(lài)后酪耕,可以看到自動(dòng)導(dǎo)入了cb依賴(lài)


image.png

手動(dòng)將其去掉后,發(fā)現(xiàn)啟動(dòng)異常轨淌,說(shuō)明cb是一個(gè)必要的依賴(lài)迂烁,也是shiro無(wú)cc鏈利用前提看尼。


image.png

0x3cb1利用

看樣子是可以直接用cb鏈打,使用cb鏈生成payload再AES加密通過(guò)rememberMe發(fā)送婚被,狡忙。并沒(méi)有計(jì)算機(jī)彈出,打失敗了址芯,看下tomcat異常灾茁,有個(gè)類(lèi)沒(méi)有,是cc依賴(lài)中的谷炸,跟一下看哪調(diào)用了北专。

Caused by: org.apache.shiro.util.UnknownClassException: Unable to load class named [org.apache.commons.collections.comparators.ComparableComparator] from the thread context, current, or system/application ClassLoaders.  All heuristics have been exhausted.  Class could not be found.

在cb鏈中會(huì)通過(guò)Comparator去調(diào)用TemplatesImpl的getOutputProperties()方法最后執(zhí)行,如下旬陡。


image.png

這里傳進(jìn)去的是string拓颓,調(diào)用的第二個(gè)構(gòu)造函數(shù),然后會(huì)獲取ComparableComparator的實(shí)例描孟,這是在commons.collections依賴(lài)中的驶睦,由于此處的環(huán)境沒(méi)有依賴(lài),導(dǎo)致異常匿醒。


image.png

0x4nocc利用

既然如此场航,找一個(gè)實(shí)現(xiàn)了Comparator的接口傳過(guò)去,讓其調(diào)用第三個(gè)構(gòu)造函數(shù)即可廉羔。在Comparator.java的示例中使用String.CASE_INSENSITIVE_ORDER


image.png

修改為

BeanComparator comparator = new BeanComparator(null, String.CASE_INSENSITIVE_ORDER);

生成payload發(fā)送溉痢,攻擊成功


image.png

0x5版本問(wèn)題

回到開(kāi)頭,當(dāng)時(shí)為什么會(huì)出現(xiàn)大量情況打不了憋他。
經(jīng)過(guò)測(cè)試孩饼,高版本的shiro使用的cb版本為1.9.3,當(dāng)時(shí)工具使用的為1.8.3竹挡,由于打的payload和目標(biāo)服務(wù)器的版本不一致镀娶,導(dǎo)致報(bào)錯(cuò)如下

Caused by: java.io.InvalidClassException: org.apache.commons.beanutils.BeanComparator; local class incompatible: stream classdesc serialVersionUID = -3490850999041592962, local class serialVersionUID = -2044202215314119608

將cb版本修改為1.9.3重新生成payload發(fā)送,利用成功揪罕。


image.png

0x6后記

在使用shiro較高版本后梯码,發(fā)現(xiàn)其自動(dòng)引入了commons.collections依賴(lài),版本為3.2.2耸序,這不正好解決了之前cb1鏈利用失敗的那個(gè)問(wèn)題。


image.png

重新使用cb鏈生成payload測(cè)試鲁猩,發(fā)送后利用成功坎怪。雖然引入了commons.collections依賴(lài),但是版本為3.2.2廓握,用cc鏈仍然打不了搅窿。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者

  • 序言:七十年代末嘁酿,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子男应,更是在濱河造成了極大的恐慌闹司,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沐飘,死亡現(xiàn)場(chǎng)離奇詭異游桩,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)耐朴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)借卧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人筛峭,你說(shuō)我怎么就攤上這事铐刘。” “怎么了影晓?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵镰吵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我挂签,道長(zhǎng)疤祭,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任竹握,我火速辦了婚禮画株,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘啦辐。我一直安慰自己谓传,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布芹关。 她就那樣靜靜地躺著续挟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪侥衬。 梳的紋絲不亂的頭發(fā)上诗祸,一...
    開(kāi)封第一講書(shū)人閱讀 52,475評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音轴总,去河邊找鬼直颅。 笑死,一個(gè)胖子當(dāng)著我的面吹牛怀樟,可吹牛的內(nèi)容都是我干的功偿。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼往堡,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼械荷!你這毒婦竟也來(lái)了共耍?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤吨瞎,失蹤者是張志新(化名)和其女友劉穎痹兜,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體颤诀,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡字旭,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了着绊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谐算。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖归露,靈堂內(nèi)的尸體忽然破棺而出洲脂,到底是詐尸還是另有隱情,我是刑警寧澤剧包,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布恐锦,位于F島的核電站,受9級(jí)特大地震影響疆液,放射性物質(zhì)發(fā)生泄漏一铅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一堕油、第九天 我趴在偏房一處隱蔽的房頂上張望潘飘。 院中可真熱鬧,春花似錦掉缺、人聲如沸卜录。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)艰毒。三九已至,卻和暖如春搜囱,著一層夾襖步出監(jiān)牢的瞬間丑瞧,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工蜀肘, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留绊汹,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓扮宠,卻偏偏與公主長(zhǎng)得像西乖,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • shiro550 環(huán)境搭建 https://codeload.github.com/apache/shiro/zi...
    紅隊(duì)藍(lán)軍閱讀 832評(píng)論 0 0
  • 反序列化漏洞四個(gè)重要方法 Java反序列化的過(guò)程中可以自動(dòng)執(zhí)行序列化類(lèi)的四個(gè)方法浴栽,且反序列化的類(lèi)必須實(shí)現(xiàn)了Seri...
    CONSCRIPT閱讀 1,186評(píng)論 0 7
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)轿偎,斷路器典鸡,智...
    卡卡羅2017閱讀 134,711評(píng)論 18 139
  • 前言 最近回顧了下之前的關(guān)于Commons Collections這塊的筆記,從CC1到CC10坏晦,從調(diào)用鏈來(lái)看萝玷,其...
    H_00c8閱讀 271評(píng)論 0 1
  • [RoarCTF 2019]Easy Java 點(diǎn)擊help發(fā)現(xiàn)文件下載按鈕, url為: 但是顯示找不到: ,一...
    yangsir閱讀 673評(píng)論 0 0