webshell與文件上傳漏洞

webshell介紹

web指的是在web服務器上,而shell是用腳本語言編寫的腳本程序,WebShell是一種用來進行網站和服務器管理的腳本程序,webshell一般是被網站管理員用於網站管理、服務器管理等等一些用途,但是由於webshell的功能比較強大,可以上傳下載文件,查看數據庫,甚至可以調用一些服務器上系統的相關命令(比如創建用戶,修改刪除文件之類的),通常被黑客利用,黑客通過一些上傳方式,將自己編寫的webshell上傳到web服務器的頁面的目錄下,攻擊者通過上傳WebShell獲得Web服務器的管理權限,從而達到對網站服務器的滲透和控制。

webshell的分類

大馬:1.體積大,功能全;2.會調用系統的關鍵函數;3.以代碼加密進行隱藏。

小馬:1.體積小,功能少;2.只有一個上傳功能。

一句話木馬:1.代碼短,只有一行代碼;2.使用場景大,可單獨生成文件,可插入文件;3.安全性高,隱匿性強,可變形免殺;4.框架不便數據執行(數據傳遞)。

webshell的特點

1、Webshell大多是以動態腳本形式的出現,也可以稱爲網站的後門工具;
2、Webshell就是一個asp或者php木馬後門;
3、Webshell可以穿越服務器防火牆,由於與被控制的服務器或遠程主機交換的數據都是通過80端口傳遞的,因此不會被防火牆攔截;
4、Webshell一般不會在系統日誌中留下記錄,只會在網站的web日誌中留下一些數據提交記錄,沒有經驗的管理員很難看出入侵痕跡;
5、黑客將這些asp或者PHP木馬後門文件放置在網站服務器的web目錄中,與正常的網頁文件混在一起。黑客可以用web的方式,通過asp或者php木馬後門控制的網站服務器,包括上傳下載文件,查看數據庫、執行任意程序命令等。

文件上傳漏洞原理

文件上傳是大部分web應用都具有的功能,例如用戶上傳附件、修改頭像、分享圖片/視頻等,正常的文件一般是文檔、圖片、視頻等,web應用收集之後放入後臺存儲,需要的時候再調用出來返回,如果惡意文件如PHP、ASP等執行文件繞過web應用,並順利執行,則相當於黑客直接拿到了webshell,一旦黑客拿到了webshell,則可以拿到web應用的數據,刪除web文件,本地提權,進一步拿下整個服務器甚至內網,SQL注入攻擊的對象是數據庫服務,文件上傳漏洞主要攻擊web服務器,實際滲透兩種相結合,達到對目標的深度控制。

一句話木馬文件上傳漏洞原理

例如:<%eval request(“pass”)%>通常將這句話寫入一個文檔裏,然後將文件後綴改爲asp,然後通過文件上傳服務,傳到服務器上面;eval函數是將其內部的代碼執行,request函數的作用是應用外部文件。這相當於一句話木馬的客戶端配置。
其中eval就是執行命令的函數,$_POST[‘a’]就是接收的數據。eval函數把接收的數據當作php代碼來執行。通過一些工具,我們就能夠讓插了一句話木馬的網站執行我們傳遞過去的任意php語句。

客戶端

一句話客戶端增強版
中國菜刀
lanker一句話客戶端
ZV新型PHP一句話木馬客戶端GUI版
蟻劍

文件上傳漏洞繞過方法

利用burp抓包改後綴名進行繞過;

利用00截斷上傳webshell;

構造圖片馬繞過;

繞過服務器擴展名檢測上傳;

競爭條件上傳繞過。

文件上傳漏洞防禦方法

1.檢查文件上傳路徑 ( 避免 0x00 截斷、 IIS6.0 文件夾解析漏洞、目錄遍歷 );

2.文件擴展名檢測 ( 避免服務器以非圖片的文件格式解析文件 );

3.文件 MIME驗證 ( 比如 GIF 圖片 MIME爲 image/gif,CSS 文件的 MIME爲 text/css 等 ) 3. 文件內容檢測 ( 避免圖片中插入 webshell);

4.圖片二次渲染 ( 最變態的上傳漏洞防禦方式 , 基本上完全避免了文件上傳漏洞 );

5.文件重命名 ( 如隨機字符串或時間戳等方式 , 防止攻擊者得到 webshell 的路徑 );

6.黑,白名單過濾。

另外值得注意的一點是, 攻擊者上傳了webshell之後需要得到webshell 的路徑才能通過工 具連接 webshell, 所以儘量不要在任何地方 ( 如下載鏈接等 ) 暴露文件上傳後的地址, 在這裏 必須要提一點 , 就是有很多網站的上傳點在上傳了文件之後不會在網頁上或下載鏈接中暴露 文件的相對路徑, 但是在服務器返回的數據包裏卻帶有文件上傳後的路徑 .

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章