注:下文涉及一種Web入侵方式的古老方法,即利用Cookie冒充已登錄用戶。熟知此方法的朋友請(qǐng)退散。
我們?cè)谧鯳eb應(yīng)用時(shí),習(xí)慣把用戶信息放到Session中,而這一舉措,實(shí)際上有較大的潛在危險(xiǎn)性,如果別人知道了我們的session id,就可能利用它以我們的身份進(jìn)入Web應(yīng)用。因?yàn)閟ession的數(shù)據(jù)雖然存在于服務(wù)器中,但識(shí)別客戶端各自的數(shù)據(jù)還是靠存放在客戶端的session Id的,如果有人以某個(gè)已登錄的用戶的session Id進(jìn)入Web應(yīng)用,那么他就會(huì)被當(dāng)作那個(gè)用戶,下文將展示這一過(guò)程。
首先,我們讓某個(gè)用戶正常登錄一個(gè)位于Tomcat上的應(yīng)用,注意右上角的用戶名的顯示:
再取得他的session Id。這一步實(shí)際上有很多途徑取到,比如url中有時(shí)帶有它,Struts做前端的e
Web應(yīng)用就時(shí)常可見(jiàn);本地cookie中可以找到它,這個(gè)用程序就能知道,用js也行(使用document.cookie);用嗅探器也可以獲得它,這個(gè)嗅探器可以放在想冒充用戶的機(jī)器或是網(wǎng)關(guān)上。下面使用了TCPMon得到其session id(具體使用方法請(qǐng)參考
http://www.tkk7.com/heyang/archive/2010/12/10/340294.html)。

上面高亮的文字部分就是“關(guān)羽”這個(gè)用戶的session id。
現(xiàn)在,url “http://localhost:8080/ProjectManager/GotoModifyUserPage.do” 和session id“4DC291FC36B2392BE440F70E5B3AA49D” 我們已經(jīng)得到,接下來(lái)就是用它們來(lái)進(jìn)入web應(yīng)用了。
一般的瀏覽器沒(méi)有可供輸入 session id的地方,但從原理來(lái)看我們知道這并不復(fù)雜,因?yàn)閔ttp是基于文本的,只要有工具能把Url和cookie捏合起來(lái)成文本并發(fā)送就可以了,WebTool就是這樣的一款工具,你可以從
http://www.hackline.net/a/soft/tools/2010/0603/4198.html 來(lái)獲得它。
得到下載文件解開(kāi)包,執(zhí)行里面的WebTool 4.2.exe,點(diǎn)擊其菜單“設(shè)置”-->“自定義cookie瀏覽”,使其成為勾選狀態(tài),然后在地址欄輸入http://localhost:8080/ProjectManager/GotoModifyUserPage.do,左下方的cookie處輸入4DC291FC36B2392BE440F70E5B3AA49D,然后點(diǎn)擊右上方的“Get”按鈕,你將看到以下畫面:
好了,看看其右上方把,用戶名“關(guān)羽”已經(jīng)顯示出來(lái)了。我們這會(huì)不用得知關(guān)羽的密碼也能以他的身份開(kāi)始操作了,這就是冒充session id做到的。
好了,感謝您看到這里。可見(jiàn),常規(guī)Web應(yīng)用還是比較脆弱的,但這種入侵方式也好防范,將協(xié)議改成改成https就可以了(請(qǐng)參考
http://www.tkk7.com/heyang/archive/2010/12/13/340500.html)。另希望有人不要把上文的技巧用到不該用的地方,去動(dòng)本不該屬于自己的東西是危險(xiǎn)而徒勞的。