跨站攻擊之實現(xiàn)Http會話劫持的手法
互聯(lián)網(wǎng) 發(fā)布時間:2008-10-08 19:38:00 作者:佚名
我要評論

Web應(yīng)用程序是通過2種方式來判斷和跟蹤不同用戶的:Cookie或者Session(也叫做會話型Cookie)。其中Cookie是存儲在本地計算機上的,過期時間很長,所以針對Cookie的攻擊手段一般是盜取用戶Cookie然后偽造Cookie冒充該用戶;而Session由于其存在于服務(wù)端,隨著會話的注銷而失
Web應(yīng)用程序是通過2種方式來判斷和跟蹤不同用戶的:Cookie或者Session(也叫做會話型Cookie)。其中Cookie是存儲在本地計算機上的,過期時間很長,所以針對Cookie的攻擊手段一般是盜取用戶Cookie然后偽造Cookie冒充該用戶;而Session由于其存在于服務(wù)端,隨著會話的注銷而失效(很快過期),往往難于利用。所以一般來說Session認證較之Cookie認證安全。
當然啦,Session難于利用并不等于不能利用,本文將通過一個小小的例子實現(xiàn)一次簡單的HTTP會話劫持。 還是以ASP為例,ASP程序是如何得到客戶端Session的呢?通過抓包可以發(fā)現(xiàn)HTTP請求的Cookie字段有個ASPSESSIONIDXXXXXXXX(X是隨機的字母)值,ASP程序就是通過這個值判斷Session的。如果我們得到管理員的ASPSESSIONIDXXXXXXXX及其值,并在這次會話結(jié)束之前提交到服務(wù)器,那么我們的身份就是管理員啦! 那怎么得到Session呢?答案是跨站。因為JavaScript的document.cookie()方法會把Cookie讀出來,當然也包括會話型Cookie。 如果你關(guān)注Web安全,相信你一定看到過記錄跨站得到Cookie的腳本程序,我們也需要一個類似的程序,但功能不是記錄,而是立即轉(zhuǎn)發(fā)(因為當前會話隨時可能由于管理員退出而失效)。這個程序可以用ASP、PHP、Perl甚至C來實現(xiàn),我還是用ASP吧J 要寫這個程序,你還必須對要攻擊的程序相當了解,因為你要提交各種請求。那現(xiàn)在先看看本例中被跨站的程序吧。 很榮幸,我選中了WebAdmin 1.4,嘿嘿,自己寫的程序自己肯定最清楚哪里有漏洞啊。呵呵,簡要介紹一下,WebAdmin是一個ASP.Net下的webshell,使用的Session認證方式,1.4版本的跨站存在于目錄瀏覽的URL。 所以我就在src中構(gòu)造這樣的路徑:“E: ”。這段代碼就是把當前cookie作為參數(shù)提交給www.0x54.org/test/cc.asp文件。 cc.asp文件內(nèi)容如下: 該文件目的是獲取管理員Session并利用WebAdmin的文件編輯功能查看222.210.115.125(被攻擊的Web服務(wù)器,其實是我本機啦)的E:\MyWeb\webadmin.aspx文件內(nèi)容并把內(nèi)容保存到本地的a.txt文件中。數(shù)據(jù)的提交使用的是ServerXMLHTTP組件,它與XMLHTTP有相似之處,也有異同,具體的可以看看《ServerXMLHTTP vs XMLHTTP》。 準備就緒,先登陸WebAdmin然后再訪問構(gòu)造好的跨站URL,呵呵,然后去看http://www.***.org/test/a.txt。 你也可以試試直接訪問cc.asp,呵呵,生成的a.txt將是一個登陸界面的源文件。 哈哈,現(xiàn)在熱烈慶祝一下本次HTTP會話劫持測試勝利閉幕,總的來說實行一次這樣的攻擊難度還是很大的,不過話又說回來,在技術(shù)這塊領(lǐng)域,除了Copy人家的代碼,還有不需要努力就能做好的事情嗎?
當然啦,Session難于利用并不等于不能利用,本文將通過一個小小的例子實現(xiàn)一次簡單的HTTP會話劫持。 還是以ASP為例,ASP程序是如何得到客戶端Session的呢?通過抓包可以發(fā)現(xiàn)HTTP請求的Cookie字段有個ASPSESSIONIDXXXXXXXX(X是隨機的字母)值,ASP程序就是通過這個值判斷Session的。如果我們得到管理員的ASPSESSIONIDXXXXXXXX及其值,并在這次會話結(jié)束之前提交到服務(wù)器,那么我們的身份就是管理員啦! 那怎么得到Session呢?答案是跨站。因為JavaScript的document.cookie()方法會把Cookie讀出來,當然也包括會話型Cookie。 如果你關(guān)注Web安全,相信你一定看到過記錄跨站得到Cookie的腳本程序,我們也需要一個類似的程序,但功能不是記錄,而是立即轉(zhuǎn)發(fā)(因為當前會話隨時可能由于管理員退出而失效)。這個程序可以用ASP、PHP、Perl甚至C來實現(xiàn),我還是用ASP吧J 要寫這個程序,你還必須對要攻擊的程序相當了解,因為你要提交各種請求。那現(xiàn)在先看看本例中被跨站的程序吧。 很榮幸,我選中了WebAdmin 1.4,嘿嘿,自己寫的程序自己肯定最清楚哪里有漏洞啊。呵呵,簡要介紹一下,WebAdmin是一個ASP.Net下的webshell,使用的Session認證方式,1.4版本的跨站存在于目錄瀏覽的URL。 所以我就在src中構(gòu)造這樣的路徑:“E: ”。這段代碼就是把當前cookie作為參數(shù)提交給www.0x54.org/test/cc.asp文件。 cc.asp文件內(nèi)容如下: 該文件目的是獲取管理員Session并利用WebAdmin的文件編輯功能查看222.210.115.125(被攻擊的Web服務(wù)器,其實是我本機啦)的E:\MyWeb\webadmin.aspx文件內(nèi)容并把內(nèi)容保存到本地的a.txt文件中。數(shù)據(jù)的提交使用的是ServerXMLHTTP組件,它與XMLHTTP有相似之處,也有異同,具體的可以看看《ServerXMLHTTP vs XMLHTTP》。 準備就緒,先登陸WebAdmin然后再訪問構(gòu)造好的跨站URL,呵呵,然后去看http://www.***.org/test/a.txt。 你也可以試試直接訪問cc.asp,呵呵,生成的a.txt將是一個登陸界面的源文件。 哈哈,現(xiàn)在熱烈慶祝一下本次HTTP會話劫持測試勝利閉幕,總的來說實行一次這樣的攻擊難度還是很大的,不過話又說回來,在技術(shù)這塊領(lǐng)域,除了Copy人家的代碼,還有不需要努力就能做好的事情嗎?
相關(guān)文章
- Web應(yīng)用程序是通過2種方式來判斷和跟蹤不同用戶的:Cookie或者Session(也叫做會話型Cookie)。其中Cookie是存儲在本地計算機上的,過期時間很長,所以針對Cookie的攻擊手2008-10-08
關(guān)于網(wǎng)址的HTTP頭引發(fā)的我們關(guān)于安全問題的思考
本文主要介紹了HTTP頭所引發(fā)的問題.我們來剖析一下.了解清楚2012-05-25- 通常HTTP消息包括客戶機向服務(wù)器的請求消息和服務(wù)器向客戶機的響應(yīng)消息。這兩種類型的消息由一個起始行,一個或者多個頭域,一個只是頭域結(jié)束的空行和可選的消息體組成。2012-06-27
- 由于HTTP是一個可擴展的協(xié)議,各瀏覽器廠商都率先推出了有效的頭部,來阻止漏洞利用或提高利用漏洞的難度。了解它們是什么,掌握如何應(yīng)用,可以提高系統(tǒng)的安全性2014-07-14
加密解密那些事之SSL(https)中的對稱加密與非對稱加密
HTTPS在傳輸數(shù)據(jù)之前需要客戶端(瀏覽器)與服務(wù)端(網(wǎng)站)之間進行一次握手,在握手過程中將確立雙方加密傳輸數(shù)據(jù)的密碼信息。TLS/SSL協(xié)議不僅僅是一套加密傳輸?shù)膮f(xié)議,更2014-07-17- HTTPS并不是一個單一的東西,它知識我們常見的HTTP 協(xié)議和某個加密協(xié)議的一個混合,這個加密協(xié)議通常會是TLS。那么HTTPS為什么安全呢?其實我們需要先考慮HTTP為什么不安全2016-06-01