1.2 隱藏密碼的泄露
為了揭示瀏覽器隱藏的密碼是如何泄露的,我們將使用瀏覽器的檢查工具。這個工具允許你查看和臨時編輯網頁的源代碼,這些代碼會告訴瀏覽器如何顯示網頁。我們將更改使密碼顯示為點或星號的那段源代碼。完成后,密碼將以普通文本的方式顯示出來。
這不是那種可以一舉損害數百萬人的私人數據的黑客行為。相反,這說明了黑客攻擊的一個指導原則,即以創造性的方式使用現有工具(在這個場景中是通過瀏覽器的檢查工具)來完成特定的目標:揭示隱藏的密碼。同時,這次攻擊還表明,如果攻擊者能夠通過物理方式訪問你的計算機,那么在瀏覽器中存儲密碼存在很大風險。
讓我們以推特(Twitter)登錄頁面為例,嘗試一下這種方法。首先輸入一個假的用戶名和密碼,然后啟動瀏覽器的Inspect工具,更新源代碼以暴露密碼。
1.打開谷歌Chrome瀏覽器,然后訪問推特首頁。這次攻擊也可以在其他瀏覽器上運行,但為了簡單起見,我們使用Chrome瀏覽器。
2.在用戶名字欄中輸入用戶名,并在密碼欄中輸入“Notmyrealpassword!”。不要輸入你的真實密碼。密碼會被星號隱藏,如圖1-1所示。

圖1-1 瀏覽器通常用點或星號來隱藏密碼
3.右鍵單擊(或在Mac上按住Control鍵單擊)密碼欄并選擇Inspect,如圖1-2所示。檢查工具應該會在瀏覽器中打開,它看起來像是顯示代碼的各種窗口的一種組合。因為你通過右鍵單擊密碼欄打開了檢查工具,所以瀏覽器應該已經把在登錄頁面中創建密碼字段的代碼部分進行了高亮顯示。

圖1-2 檢查密碼
4.在突出顯示的代碼中找到type="password"并雙擊單詞password將其選中,如圖1-3所示。這段代碼是瀏覽器識別密碼字段的方式。瀏覽器知道應該隱藏password類型字段中的任何文本。

圖1-3 在檢查工具中查找type="password"
5.password被高亮后,按空格鍵將password替換為空格(type=" "),如圖1-4所示。我們現在已經修改了(或破解了)密碼字段的代碼,這樣瀏覽器就不知道它是一個密碼類型的字段。這將顯示密碼字段中的任何文本!
注意:這種破解行為并不影響推特本身的頁面,它只是改變了你的瀏覽器顯示推特登錄頁面的方式。
6.按回車鍵,在瀏覽器中顯示更新后的代碼。現在你應該能在瀏覽器窗口看到你輸入的密碼以普通文本形式顯示了,如圖1-5所示。

圖1-4 替換type="password"中的單詞password

圖1-5 密碼現在是可見的
這種攻擊之所以奏效,是因為Web開發人員用于創建密碼字段的<input>標簽是不安全的,而且它已存在了二十多年。在20世紀90年代,當早期的Web開發人員將<input>標記添加到用以在瀏覽器上顯示網頁的超文本標記語言(HTML)中時,它們唯一的安全功能是通過使用額外的代碼type="password",用點或星號替換密碼字符。然而,由于常規文本框也使用<input>標記,所以我們可以使用檢查工具將密碼輸入欄更改為常規文本輸入,只需將type="password"更改為type=" "即可。
- Extending Symfony2 Web Application Framework
- Web漏洞分析與防范實戰:卷1
- INSTANT Netcat Starter
- Securing Blockchain Networks like Ethereum and Hyperledger Fabric
- 為你護航:網絡空間安全科普讀本(第2版)
- 黑客攻防與電腦安全從新手到高手(微視頻+火力升級版)
- Enterprise Cloud Security and Governance
- 諸神之眼:Nmap網絡安全審計技術揭秘
- 黑客攻防實戰從入門到精通
- Mastering Linux Security and Hardening
- Mastering Malware Analysis
- 物聯網信息安全技術
- 聯邦學習原理與算法
- 隱私保護機器學習
- Web代碼安全漏洞深度剖析