前言
這周授權(quán)測(cè)試了某系統(tǒng)三妈,憑借著一個(gè)任意文件讀取的漏洞延欠,不斷深挖,一波三折沈跨,歷時(shí)將近24小時(shí),最終拿下目標(biāo)的webshell兔综。過(guò)程簡(jiǎn)直不要太美饿凛、太狗血,在此做個(gè)整理软驰。
基本信息
目標(biāo):wy.xxx.com.cn(子域名)
IP:114.xxx.xxx.xxx(阿里云)
web 四大件:
java涧窒、Apache Tomcat 7.0.61、mysql锭亏、linux
端口開(kāi)放了太多纠吴,確定的是30126端口為ssh
子域名更多了,大多數(shù)均反查為該阿里云服務(wù)器慧瘤。
弱口令
測(cè)試首先發(fā)現(xiàn)驗(yàn)證碼無(wú)效戴已,直接爆破。
這里分享了小技巧:
阿里云服務(wù)器在掃描目錄或者爆破口令的時(shí)候锅减,如果線(xiàn)程多高糖儡,IP會(huì)容易被封≌唬可以再找一臺(tái)阿里云服務(wù)器做代理進(jìn)行測(cè)試握联。
放棄圖片上傳
選擇權(quán)限比較高的用戶(hù)登陸系統(tǒng)后,發(fā)現(xiàn)一處圖片上傳。
該處上傳無(wú)任何校驗(yàn)金闽,可以上傳任何格式的文件纯露。但都統(tǒng)一受到images.xxx.com.cn域名下,受nginx解析代芜。
多次嘗試無(wú)果后埠褪,遂放棄。
任意文件讀取
在系統(tǒng)里閑逛一圈后蜒犯,發(fā)現(xiàn)一處任意文件讀取漏洞组橄。
點(diǎn)擊"下載模板文件"抓取數(shù)據(jù)包,可在數(shù)據(jù)包path參數(shù)看到系統(tǒng)路徑罚随。
使用字典fuzz該參數(shù)玉工。
查看返回包可收集到系統(tǒng)的許多信息。
1./etc/passwd
看到系統(tǒng)只有root淘菩、ftpimage這兩個(gè)賬戶(hù)是可以登錄的遵班。
2./etc/shadow
看到shadow文件,說(shuō)明當(dāng)前權(quán)限是比較高的潮改。
3./root/.bash_history
看到root用戶(hù)執(zhí)行的歷史命令狭郑。確定當(dāng)前為root權(quán)限。
且發(fā)現(xiàn)網(wǎng)站絕對(duì)路徑的一部分/www/xxx-tomcat1/汇在,馬上想到翻看tomcat-users.xml文件翰萨,但并沒(méi)有配置用tomcat manager。
還發(fā)現(xiàn)了logs目錄的catanlina.out日志文件糕殉。
下載catanlina.out文件進(jìn)行分析亩鬼。
4.catanlina.out日志
該日志文件比較大,下載了多次都失敗了阿蝶,最終也是用自己阿里云服務(wù)器wget命令下載下來(lái)的雳锋,高達(dá)1.9g
war包
下載后,直接檢索/www/xxx-tomcat1/羡洁,存在多個(gè)war包玷过。
靠著任意文件讀取下載了幾個(gè)war包,部署到自己搭建的tomcat下進(jìn)行查看筑煮。
基本上幾個(gè)war包都大致差不多辛蚊。
猜測(cè):系統(tǒng)使用war包部署到tomcat,一個(gè)war包對(duì)應(yīng)一個(gè)域名真仲。
ftpimage賬號(hào)密碼
在config.properties配置文件中發(fā)現(xiàn)了ftpimage賬戶(hù)密碼嚼隘,以及該war包所對(duì)應(yīng)的域名。
比如run.war包袒餐。
一般配置文件都存放在/WEB-INF/classes/這個(gè)文件夾下飞蛹。
記錄著ftpimage賬戶(hù)的用戶(hù)名密碼
ip.imgservice這個(gè)屬性也看得出谤狡,上傳的圖片都會(huì)在image.xx.com.cn這個(gè)域名下。
放棄axis2框架
有些war包里存在axis2框架
找到對(duì)應(yīng)的域名訪(fǎng)問(wèn)axis2-web
如果可以上傳arr木馬就美滋滋了卧檐,但多次上傳均404墓懂。
查找資料,發(fā)現(xiàn)axis2框架的正確結(jié)構(gòu)是這個(gè)樣子的霉囚。
猜測(cè)axis2框架應(yīng)該無(wú)法使用捕仔,遂放棄。
放棄提權(quán)
之前獲取到的ftpimage賬號(hào)密碼登錄阿里云盈罐,發(fā)現(xiàn)權(quán)限特別低榜跌。只有www、var文件夾可讀可寫(xiě)可執(zhí)行的權(quán)限盅粪。但也能看到nginx钓葫、redis文件夾。
執(zhí)行了幾條提權(quán)命令也都不行票顾,考慮到阿里云服務(wù)器础浮,遂放棄。
33個(gè)域名
看到nginx文件夾奠骄,想到讀取nginx.conf配置文件豆同。
統(tǒng)計(jì)大概有33個(gè)域名,而且看到nginx統(tǒng)一設(shè)置了白名單含鳞,均image.xxx.com.cn這個(gè)域名解析影锈。驗(yàn)證了之前的猜測(cè)。
結(jié)合catanlina.out日志和nginx.conf配置文件的域名蝉绷,
最終找到絕對(duì)路徑和網(wǎng)站域名對(duì)應(yīng)的關(guān)系鸭廷。
/www/xxx-tomcat1/wy/ROOT/---------wy.xxx.com.cn
/www/xxx-tomcat1/care/ROOT/-------care.xxx.com.cn
/www/xxx-tomcat1/nd/ROOT/---------nd.xxx.com.cn
/www/xxx-tomcat1/elder/ROOT/------elder.xxx.com.cn
/www/xxx-tomcat1/wx2/xxxx.war/----wx2.xxx.com.cn
查看目標(biāo)絕對(duì)路徑/www/xxx-tomcat1/wy/ROOT/
/www/xxx-tomcat1/提示沒(méi)有權(quán)限
但是/www/xxx-tomcat1/wy/ROOT/竟然有權(quán)限。
看到upload這個(gè)文件夾潜必,比較好奇,ls發(fā)現(xiàn)全是xls文件沃但。
xls上傳
猜想一下:上傳的xls表格文件存放在/www/xxxx-tomcat1/wy/ROOT/upload/這個(gè)文件夾下磁滚,和圖片上傳的那個(gè)位置不一樣,存放在/www/upload/文件夾下宵晚。那么可以在目標(biāo)系統(tǒng)里找對(duì)應(yīng)的表格上傳垂攘。
其實(shí)一些表格的上傳、導(dǎo)入導(dǎo)出這種我很少測(cè)淤刃,認(rèn)為會(huì)有格式校驗(yàn)
但轉(zhuǎn)念一想晒他,都測(cè)那么多了,不差這點(diǎn)了逸贾。
選擇模板文件陨仅,抓取數(shù)據(jù)包上傳津滞。
返回包里還真有upload,但對(duì)應(yīng)的temp目錄下并沒(méi)有a1a6d54010a34a58a9497fdc41ef42b2.xls這個(gè)文件灼伤。
空空如也触徐,見(jiàn)鬼了!:摹撞鹉!
做到這里想放棄了,實(shí)在是沒(méi)有思路了颖侄。
沒(méi)思路的我就只能一個(gè)文件一個(gè)文件的翻找鸟雏,試圖再發(fā)現(xiàn)點(diǎn)別的有價(jià)值的信息。
然后我意外的在/www/xxxx-tomcat1/wy/ROOT/upload/images/文件夾下發(fā)現(xiàn)了大量的xls览祖、jsp文件孝鹊。
難道我上傳的xls、jsp文件到這個(gè)目錄下了穴墅?那也不對(duì)啊惶室。
上傳重命名后a1a6d54010a34a58a9497fdc41ef42b2.xls這個(gè)文件也不在啊。
于是我嘗試又上傳一個(gè)文件玄货。
詭異的事情發(fā)生了;食!松捉!該目錄下還真多了一個(gè)文件夹界。
比較一下哪個(gè)是新增的文件,并嘗試訪(fǎng)問(wèn)隘世。
竟然真的可以可柿。
直接上傳冰蝎馬。
然后系統(tǒng)就這樣被拿下了丙者,感覺(jué)最后這步太狗血了复斥。
總結(jié)
1、文件上傳漏洞是最快一種獲取webshell的方式械媒。在圖片上傳目锭、附件上傳、頭像上傳都不行的情況下纷捞,試著看看模板上傳痢虹、文件的導(dǎo)入、mp4的上傳等等主儡。最好任意一處上傳也別放過(guò)奖唯。
2、不要忽視任意文件讀取漏洞的危害糜值,他可以為你收集系統(tǒng)丰捷、服務(wù)器的許多信息坯墨,比如系統(tǒng)的絕對(duì)路徑、一些配置文件瓢阴、備份文件的名稱(chēng)畅蹂、有沒(méi)有使用一些解析庫(kù)(fastjson)等等。幾個(gè)漏洞結(jié)合起來(lái)的效果也不錯(cuò)荣恐。