別以爲有https就安全了,這樣做支付寶也能輕易被攻破!

安全問題一直是互聯網用戶心頭的一塊大石。很多人將https與安全畫上了等號。實則不然,今天,信息安全專家跟大家聊聊https的那些事。

在平時工作和日常生活中, “https=安全”這樣的觀點在大多數人的思維中根深蒂固,甚至很多人根本不認爲自己會被攻擊。那這個觀點到底對不對呢?難道真的是 too young too simple, sometimes naive麼?

本文就逐條分析人們對https的信任是從何而來的。(注:本文只討論前端以及中間人的手段來獲取信息,而且https主要是爲了防止信息被監聽。至於黑站的相關問題,本文暫不討論,如有興趣請大家持續關注。)

第一部分 . https降級攻擊

降級攻擊這項技術歷史悠久,但由於操作簡單便捷,所以使用率一直很高。這項技術與證書僞造殊途同歸,爲了讓讀者能直觀感受這一類直接劫持類型的攻擊,在此做一個簡單的演示。

爲了讓大家對整個演示過程印象深刻,把BAT的產品拿來做演示對象應該是最有效的。另外,個人覺得搜索引擎應該也是大家用的最多的產品,那不妨就讓baidu身先士卒,先上筆者的手術檯被我解剖下。

工具:一臺受害者的電腦或者虛擬機,另一臺裝有sslstrip或者一堆高度集成的自帶sslstrip功能的中間人工具框架。具體操作請看下面演示:

在受害者電腦上,圖1這個是正常訪問baidu的樣子。有小鎖圖標,有https協議,然後我們看看如果受到了降級攻擊之後,受害者的百度:

很明顯,圖2中安全鎖圖標消失了,地址欄最前面的https也不見了。其實,很多攻擊者會通過注入前端的js,讓用戶看起來有https,也有安全鎖圖標。下面,我們登錄下試試:


在攻擊者的電腦上:

由上圖可見,受害者電腦上輸入的用戶名和加密後的密碼都已經被截取到。幸好密碼是加密的,攻擊者無法直接獲取受害者的用戶名和密碼。由上可知,即使有了https,對密碼加密也是必不可少的步驟。緊急關頭,這也能給自己加一道最後的防護。

從另一個角度來說:在我們的演示中,密碼已經加了密,所以獲取到了也沒什麼用。而且有的同學說,在地址欄裏面這麼明顯的差別,一般人都能看出是受到攻擊了;既然都能看出問題的所在,那也就不存在安全失控這樣的隱患。

那接下來,我們繼續介紹些更隱蔽、更直接地拿到明文密碼的方法。

第二部分 . js中間人投毒

這個名字其實是筆者根據攻擊原理形象化的描述。其原理是先開展中間人攻擊,然後在用戶請求的時候修改返回的數據包,插入有攻擊性的js代碼。具體步驟請看下面的演示:

工具:一臺受害者的電腦,一臺攻擊者的電腦,爲了方便,直接使用mitmf這個中間人攻擊框架進行操作。

攻擊者電腦開啓mitmf,調用jskeylogger模塊:

看看日誌:

已經開始注入惡意的js了。

受害者繼續登錄baidu:

密碼是“xiaobaitu”,攻擊者這邊已經收到,如下圖所示。

登錄憑證竊取計劃完成,這個方法比第一個方法要方便得多,直接竊取到明文密碼,而且https以及安全圖標都還在。

除了中間人攻擊的方法,攻擊者還可以結合xss,js緩存投毒等一系列攻擊手段開展類似的攻擊,危害不可謂不大。

第三部分 . 瀏覽器惡意插件

瀏覽器惡意插件,和中間人關係不大。因爲中國有Great Firewall的存在,我們基本可以不用擔心一些惡意插件能竊取我們的資料。但是由於習慣原因,很多人喜歡用chrome,並且大家也都知道chrome可以裝很多有用的插件,然而由於Great Firewall的存在,通過正常渠道是訪問不到谷歌應用商店的。於是,很多有需要的用戶會通過各種方法去下載類似的插件。而對插件原理不甚明瞭的用戶,就很有可能下載到帶有惡意js的插件。通常來說,大部分的殺毒軟件對帶有惡意js的插件是沒有特別好的檢測方案的。而無論是谷歌還是火狐的官方插件商店,都曾經出現過帶有惡意代碼的插件,造成了巨大的損失。

背景介紹完了,演示如下:

工具:一臺受害者的電腦,一個筆者寫的chrome插件,一臺可以訪問接收的web服務器。

首先,攻擊者在經不住誘惑的情況下(如“美女圖片”插件,“一元錢搶6s”插件等描述),下載了惡意的插件,然後又登錄baidu(爲了增強大家印象),現在,我們換一個比較“致命”的應用,支付寶。

由上圖可以看出,攻擊者端已接收到全部的信息。

該方法的原理就是通過瀏覽器插件,在點擊登錄時,將登錄框的信息通過ajax表單的形式提交的遠程服務器,無聲無息間賬號密碼已經泄露。

下面貼個實現代碼:


主要是通過監聽表單的submit事件來實現。

Http安全問題其實是當前的一個重點問題,很多人的賬戶密碼都是由以上攻擊方式而被竊取的。除以上三種方式之外,攻擊方法還有很多,本文就不一一列舉了。用戶必須要理解一個概念:安全是一個需要積累的過程,就像打補丁。一個補丁剛打上時,暫時可以保證安全。但是時間一久,系統仍有可能出現其他的漏洞。你可能認爲某個小補丁不起眼,能一擊而破,可是別忘了,補丁也不是獨自戰鬥。因此,各項安全工作一起合力,就能很好的延長防護的縱深以及拉長防護的戰線,給予我們以及用戶更好的保護。(文/汪浙鋒)

 

找資源、聊技術、寫博客、答業務、反整蠱…歡迎來到恆生開發者社區bbs.hscloud.cn


發佈了34 篇原創文章 · 獲贊 16 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章