cookie欺騙
當前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
現(xiàn)在有很多社區(qū)網(wǎng)為了方便網(wǎng)友瀏覽,都使用了cookie技術(shù)以避免多次輸入密碼(就如the9和vr),所以只要對服務(wù)器遞交給用戶的cookie進行改寫就可以達到欺騙服務(wù)程序的目的。
cookie欺騙原理 按照瀏覽器的約定,只有來自同一域名的cookie才可以讀寫,而cookie只是瀏覽器的,對通訊協(xié)議無影響,所以要進行cookie欺騙可以有多種途徑: 1.跳過瀏覽器,直接對通訊數(shù)據(jù)改寫 2.修改瀏覽器,讓瀏覽器從本地可以讀寫任意域名cookie 3.使用簽名腳本,讓瀏覽器從本地可以讀寫任意域名cookie(有安全問題) 4.欺騙瀏覽器,讓瀏覽器獲得假的域名 其中: 方法1、2需要較專業(yè)的編程知識,對普通用戶不太合適。 方法3的實現(xiàn)有2種方法: 1.直接使用簽名腳本,不需要簽名驗證,但是產(chǎn)生很嚴重的安全問題,因為大家都要上網(wǎng)的,如果這樣做你的硬盤文件就…… 2.對腳本進行簽名后再使用簽名腳本,但是需要專用的數(shù)字簽名工具,對普通用戶也不合適。 方法4看樣子應(yīng)該是最合適的了,域名欺騙很簡單,也不需要什么工具(當然如果你的機器裝有web服務(wù)器那更好了),下面我以the9為例,以這種方法為基礎(chǔ),闡述一下cookie欺騙的過程(下文中提到的任何服務(wù)端的bug,the9都已經(jīng)做了改進,所以本文對the9無安全方面的影響): 注:我們討論的cookie是那種不會在硬盤的cookie文件里留下蹤跡的cookie,就是那種只在瀏覽器生存周期內(nèi)(會話)產(chǎn)生的cookie,如果瀏覽器關(guān)閉(會話結(jié)束)那么這個cookie就被刪了! cookie欺騙實戰(zhàn) the9在登陸的時候會返回3個cookie(這可把瀏覽器的警告cookie選項打開時看到): cgl_random(隨即序列號):登陸識別的記號 cgl_loginname(登陸名):身份的識別記號 cgl_areaid(小區(qū)號):你居住的小區(qū)號碼 只要把cgl_loginname填入正確的登陸名,再對cgl_random進行修改,就可以達到欺騙服務(wù)程序的目的。 一般欺騙php程序的字符串為:1''or''1''=''1 把這個填入cgl_random,服務(wù)程序就被欺騙了! 因為服務(wù)程序不太可能對cookie進行語法檢查(the9現(xiàn)在改進了),那么把這個字符串填入,就可以成功的欺騙對方程序,而達到突破的目的了! 現(xiàn)在的問題是,如何使瀏覽器把這個我改過的cookie返回給the9? 看一看the9的域名吧:http://www.the9.com/,而瀏覽器的cookie警告已經(jīng)告訴了我們這3個cookie會返回給有.the9.com這個域名的服務(wù)器,哎?我的機器上正好有web服務(wù)器,那么動手吧! 先編一個設(shè)置cookie的html,就叫cookie.htm吧,然后把這個cookie放進web目錄,這樣還不行,因為我的機器的域名沒設(shè),那么設(shè)置host的名字,可是如果在網(wǎng)絡(luò)設(shè)置中進行設(shè)置的話,機器要重啟動的,還是想想別的簡單的辦法吧!然后我們應(yīng)該編輯hosts文件,這個文件應(yīng)該在windows目錄下,你有可能找不到它,但是如果你找到了hosts.sam文件,那么把它后面的擴展名去掉,就是我們要的文件了! 編輯hosts文件,填入以下一行: 127.0.0.1 www0.the9.com 解釋一下,127.0.0.1是本機的ip地址,可以用做web地址,而www0.the9.com就是我們欺騙產(chǎn)生的域名。 然后在瀏覽器中輸入http://www0.the9.com/cookie.htm,看,頁面出來了,快設(shè)置cookie吧! 直接訪問http://www.the9.com/main.htm看看,不錯吧! 但是不是所有的網(wǎng)友都有自己的web服務(wù)器??!那怎么辦呢? 其實如果你有個人主頁的話,也可以達到cookie欺騙的目的,比如某個個人主頁的服務(wù)器的ip地址是1.2.3.4,先上傳cookie.htm文件,再編輯hosts文件: 1.2.3.4 www0.the9.com 然后訪問http://www0.the9.com/***/cookie.htm,其中***是你個人主頁的地址目錄。 對了我作了個工具在我的主頁上,現(xiàn)在公開一下,http://home.etang.com/fsl/9the/,大家知道該怎么做了吧?嘿嘿,不過你那樣設(shè)置是沒有用的,要這樣編輯hosts: etang的ip www.the9.com the9的ip www0.the9.com 為什么要這樣呢?我等會會告訴大家的 繼續(xù)the9的cookie討論,還有2個cookie: cgl_mainshowinfo(個人信息) cgl_showinfo_changed(意義不知) 由于第二個cookie不知道是什么,所以就討論第一個。 第一個cookie存放著你在the9的名字、稱號、居住的小區(qū)、街道、是否有工作、星級、門牌號等的信息(目前只知道這些,其余的信息不知其意義,具體格式就讓給大家去分析了),但是中文都escape過了,如果你用的不是netscpae而是ie的話,不能用unescape得知其信息,因為ie對雙字節(jié)采用unicode而不采用ascii,如果哪天the9也支持unicode就好了?。?,但是其他網(wǎng)站站長注意了,你們可通過cgi的形式把這些the9居民信息抓過來實現(xiàn)數(shù)據(jù)共享!哈哈……,如果你們真要這么做,就只有使用簽名腳本了,總不能讓別人編輯hosts吧(不過得注意版權(quán)哦!)? ie的cookie漏洞 如果你用的是ie的話,由于ie本身的漏洞,你大可不必編輯hosts,就可以同樣做到讀寫別的域名的cookie,你可以使用以下的方法欺騙ie(具體的可以去www.cookiecentral.com看看): 假設(shè)你的主頁文件為http://a.com/cookie.htm, 使用以下url: http://a%2Ecom%2Fcookie%2Ehtm%3F.the9.com 如果直接輸在瀏覽器地址欄里不行,就作個script,把location的值設(shè)為這個就可以了! 這個地址轉(zhuǎn)換后應(yīng)該是這樣的: http://a.com/cookie.htm?.the9.com 由于ie的bug,誤把前面那個的域名以為是.the9.com了! hosts文件解釋 hosts文件實際上可以看成一個本機的dns系統(tǒng),它可以負責把域名解釋成ip地址,它的優(yōu)先權(quán)比dns服務(wù)器要高,它的具體實現(xiàn)是TCP/IP協(xié)議中的一部分。 如果有這么一行: 202.109.110.3 www.the9.com 那么在輸入www.the9.com時,網(wǎng)絡(luò)協(xié)議會首先檢查hosts文件找到匹配的,如果找不到再去dns查,這樣你訪問www.the9.com實際上是訪問202.109.110.3,而不是通常的202.109.110.2。 注:由于緩存的作用,如果開著瀏覽器編輯hosts的話,hosts里的內(nèi)容有可能不會當場生效,你可以重新啟動瀏覽器或等一會時間再試一下! hosts文件位置: C:\WINDOWS\HOSTS (Windows 3.1、95、98、Me) C:\WINNT\SYSTEM32\DRIVERS\ETC\HOSTS (Windows NT、2000) C:\WINDOWS\SYSTEM32\DRIVERS\ETC\HOSTS (XP、2003) hosts內(nèi)容格式: IP地址在前,空格后為網(wǎng)址,下一個映射另起一行。若有#,則#后的部分作為注釋,不起作用。 關(guān)于referer的欺騙(這個雖然不屬于cookie欺騙,但是懶得再寫一篇,就歸在一起了) referer是http頭,它的作用是簽定用戶是從何處引用連接的,在the9,服務(wù)程序就充分利用了這一點,如過你是手動輸入url的話,那么referer不會設(shè)任何值,服務(wù)程序就返回什么“投機取巧”的字樣! 由于我們前面對瀏覽器進行了域名欺騙,那么referer也被欺騙了,但是服務(wù)程序?qū)eferer是整個主機名檢查,所以www0.the9.com的域名就欺騙不了服務(wù)器,所以得用www.the9.com欺騙,那么還得設(shè)一個域名方便我們訪問the9,而且還得讓cookie返回給這個真的the9,那么就用www0.the9.com吧!(這回知道前面訪問我主頁工具時要那樣編輯hosts了吧?) 如果你用了這個方法的話,那么你就不能直接點擊the9的連接,而得用工具中的地址欺騙來進行訪問,至于這樣做的好處,大家自己找找吧,我就不想詳細說了,太累了! 關(guān)于netvampire 這個下載工具大家都知道吧?那么它的3.3版大家用過嗎?很棒的!因為它可以直接讓大家改變下載連接的referer,而且它還能繼承瀏覽器的cookie,把cookie返回給服務(wù)端(不過cookie不能改,如果能改的話,這個工具就太………………) 后記 好了關(guān)于cookie及referer就說到這了,在這個星期以前利用cookie欺騙的話the9的門戶可是大開的(當然似乎還有通用密碼什么的),不過the9雖然改進了,我不能保證其他社區(qū)網(wǎng)也改進了,當然本文只是探討技術(shù),不負什么法律責任 Dnawo補充 根據(jù)文章作者的思路我做了個實驗,建立了兩個文件index.asp和gcookie.asp,代碼如下: index.asp: <% Response.Cookies("username").Domain = "mzwu.com" Response.Cookies("username")="admin" %> <a >mzwu</a> gcookie.asp: <% if request.cookies("username")="admin" then response.write "登錄成功!" else response.write "未登錄成功!" end if %> 將gcookie.asp上傳至服務(wù)器,在hosts文件添加語句:127.0.0.1 www0.mzwu.com 在瀏覽器中輸入www0.mzwu.com并點擊上邊的鏈接打開gcookie.asp,顯示是登錄成功的! 需要注意的是Response.Cookies("username").Domain = "mzwu.com"一句,如果沒有該句,則hosts中必須將www0.mzwu.com改為mzwu.com才可成功登錄! 該文章在 2011/3/10 0:39:52 編輯過 |
相關(guān)文章
正在查詢... |