Webmail攻防實戰(7)_Mail服務器教程
(1) 并不是每個瀏覽器都支持cookie,有些用戶為了防止泄露隱私以及從安全性上考慮,可能會禁用瀏覽器的cookie。
(2) 由于功能限制或者設置有誤,代理服務器不能夠代理cookie,導致通過代理服務器上網的用戶不能登錄進入以cookie進行會話跟蹤的WebMail。
六、URL會話攻擊
一些WebMail系統膽敢在客戶端不支持cookie時拒絕提供WebMail服務,如新浪、搜狐等WebMail系統,而另一些WebMail系統則視用戶為上帝,使用URL會話跟蹤技術來維護與客戶端交互的狀態,如163.net、263.net、21cn.com等。
URL會話跟蹤是把一些標識會話的字符串加在URL里面,對于客戶端的每一個http連接請求,服務端都會把URL里的會話標識和它所保存的會話數據關聯起來,從而能夠區分不同的客戶端,以及進行用戶會話跟蹤。下面是在瀏覽器的地址欄里看到的一些WebMail的URL,看起來會很長甚至有些怪:
http://bjweb.163.net/cgi/ldapapp?funcid=main&sid=HAPGfUDusCLAQSIm
http://WebMail.21cn.com/extend/gb/std/username/
NV0416qxMftyKnOcavGDktOmIEvPsb/SignOn.gen
在關閉瀏覽器后,保存在服務器里的會話關聯數據并不會立即失效,一段時間內WebMail的URL仍然有效,他人只要從瀏覽器的歷史記錄里找到該URL,就可以點擊進入用戶的WebMail,并不需要任何密碼驗證,所以用戶在退出WebMail時,不應該直接關閉瀏覽器,應該點擊WebMail上的“退出”來退出,這樣才會清空會話,使WebMail的URL失效,那些在網吧等公共場所上網的用戶尤其要注意這一點。
如果攻擊者知道WebMail系統的URL會話機制,能猜到WebMail的會話標識,那么就能找到WebMail的URL,在瀏覽器地址欄里輸入相同的URL就能輕易地進入用戶的WebMail,所以WebMail系統應該使用較長的、隨機的字符串做為會話標識,使攻擊者難以猜測。
不過,即使WebMail系統的URL會話機制再復雜、會話標識再長,對攻擊者而言,要想獲得用戶WebMail的URL,往往就像探囊取物一般容易。
JavaScript程序中的window.location、location.href、document.URL、document.location、document.referrer等對象屬性都可以用來獲取WebMail的URL,攻擊者只要在html郵件中放入一段腳本代碼就可以獲取URL,并且能偷偷地發送給攻擊者,類似的代碼可以參考“cookie會話攻擊”一節里的一段演示程序。
Http協議(RFC2616)里規定http請求頭域“referer”用于指明鏈接的出處,即指明來自客戶端的這個連接請求是從哪個URI地址提交過來的,例如用戶點擊頁面上的某個鏈接地址后,發出的referer域的內容就是當前頁面的URI地址。CGI編程中的環境變量“HTTP_REFERER”用于獲取http請求頭域“referer”,下面是一個在Linux下用shell寫的CGI程序:
#!/bin/sh
#set -f
echo Content-type: text/plain
echo
#寫入日志,geturl.log文件權限要可寫
echo "`date` $REMOTE_ADDR $HTTP_REFERER" >> /var/log/geturl.log
#即時通知攻擊者
wall "`date` 收到WebMail url,請檢查日志"
#返回給客戶端的信息,用于迷惑用戶
echo "你好!"
攻擊者把這個CGI程序放在自己的Web服務器上,然后把該CGI程序的URL地址以單獨一行放在txt郵件里發給用戶,URL地址會自動變成鏈接地址,受到欺騙的用戶點擊后,攻擊者就獲得了用戶WebMail的URL。當然攻擊者也可以把CGI程序的URL地址放在html郵件里做為鏈接地址讓用戶來點擊,或者就用腳本程序或框架技術使這個CGI程序自動運行,或者干脆把這個CGI程序的URL地址放在html郵件源代碼img元素的src屬性值,雖然顯現不出圖片,但這個CGI程序照樣會收到http連接請求,從而獲得WebMail的URL。
Web服務器的日志記錄也能獲取referer域的內容,以apache為例,在httpd.conf文件中修改或加入如下配置參數:
LogFormat "%t %h %{Referer}i -> %U" referer
CustomLog /usr/local/apache/logs/referer_log referer
這樣對web服務器的每一個http連接請求的referer域的內容都會寫到referer_log日志文件里去,攻擊者只要分析日志文件就能夠知道用戶WebMail的URL了。WebMail系統如果支持html郵件的話,總不可能會禁止html郵件中使用圖像,攻擊者在發給用戶的html郵件中放入一張src地址在自己Web服務器上的圖片,也就能輕易地獲取WebMail的URL。
這樣一來,深懷惡意的攻擊者花點小錢去做郵件服務商提供的WebMail旗幟廣告,廣告的圖片則是放在攻擊者的Web服務器上,那么攻擊者就能每天坐收成千上萬用戶的WebMail了。
- 相關鏈接:
- 教程說明:
Mail服務器教程-Webmail攻防實戰(7)
。