概念介紹
- WebShell網頁木馬文件
-
最常見利用文件上傳漏洞的方法就是上傳網站木馬(WebShell)文件,根據開發語言的不同又分為ASP木馬、PHP木馬、JSP木馬等,該木馬利用了腳本語言中的系統命令執行、文件讀寫等函數的功能,一旦上傳到服務器被腳本引擎解析,攻擊者就可以實現對服務器的控制。
-
一句話木馬(小馬):功能簡單,需要配合客戶端使用,隱蔽性強,容易通過變形隱藏特征,繞過過濾

-
大馬:功能完善,直接使用瀏覽器即可利用,隱蔽性相對較弱,通常需要通過加密等方式來隱藏特征
-
實驗場景一:文件上傳
-
檢測文件MIME類型的文件上傳傳漏洞利用
通過把木馬eval.php拓展名改成jpg,再通過代理抓包,將拓展名改回php

實現繞過MIME類型檢測

-
服務端黑名單檢測文件擴展名的文件上傳漏洞利用
把木馬eval.php拓展名改成jpg,再通過代理抓包,send到BurpSuitde的repeat模塊

嘗試各種拓展名修改繞過黑名單如(拓展名改為Php,PHP,php5,php6等等)

發現Php可以繞過檢驗

猜測推斷或者利用其他功能找出木馬在服務器的路徑

找到路徑后,可以直接配合CKnife使用來控制整個服務器



文件上傳漏洞防護
- 黑名單檢測:一般有個專門的blacklist文件,里面包含各種常見的危險腳本文件的拓展名,如:php,asp,jsp。該方式過濾的完整度受限於blacklist內容,不夠安全
- 白名單檢測:只允許系統接受的文件類型通過,如只能上傳png,jpg,zip,rar等。該方式相對安全。
總結
通過實驗可以看出,木馬的直接利用難度很高,一般通過文件上傳,攻擊者很難猜出木馬在服務器的路徑。木馬的利用,大都是攻擊者通過其他方式獲取了shell權限,為了下次控制服務器的方便,在服務器上留下的后門(正如木馬本身的含義)。
