大家好,在這篇文章中,我將展示如何挖出一個html注入漏洞,以及將其配合cookie劫持漏洞最終形成一個釣魚手段。

HTML注入和cookie劫持:

HTML注入漏洞一般是由於在用戶能夠控制的輸入點上,由於缺乏安全過濾,導致攻擊者能將任意HTML代碼注入網頁。此類漏洞可能會引起許多後續攻擊,例如當用戶的會話cookie被泄露時,攻擊者可以利用這些cookie非法修改其他用戶的個人頁面。

會話劫持攻擊一般涉及Web會話控制原理,其中最主要的是會話令牌管理。

發現漏洞

在某次測試中,我正對某個客戶信息頁面上的每個輸入點進行手動測試。一段時間後,我注意到某些輸入沒有按預期的進行顯示,貌似這裡存在缺陷,那麼要如何利用這種類型的漏洞呢,難道是登入後才能「激活」這些HTML代碼嗎?

第一次嘗試:嘗試利用CSRF漏洞登入,攻擊者向受害者發送惡意代碼,一旦受害者打開,就會自動登入到攻擊者自己的帳戶。代碼如下:

<html>
<! - CSRF Login PoC ->
<body>
<sc ript> history.pushState (, , /) </ sc ript>
<form action = "https://private-company.com/account/signin" method = "POST">
<input type = "hidden" name = "customerlogin" value = "[email protected]" />
<input type = "hidden" name = "customerpassword" value = "attacker-password" />
<input type = "submit" value = "Submit request" />
</ form>
</ body>
</ html>

很可惜的是,上面的利用代碼沒能成功,因為後端處理客戶登錄時涉及到了令牌。

第二次嘗試:

Cookie劫持,攻擊成功!因為管理用戶會話的令牌在用戶註銷後並沒有過期。cookies能在瀏覽器中繼續生效,直到被手動清除。過程如下:

1.我先用一個測試帳戶登錄,然後點擊「註銷」。請注意,在這一系列操作後,本該註銷的cookies仍在瀏覽器中:

2.再次注意,這個客戶端會話的cookie的過期時間為一年。

3.我用工具複製了所有cookie,然後添加到另一個瀏覽器,接著再用瀏覽器訪問用戶界面,bingo!我成功進入了測試用戶的主頁面。

很好!是時候和HTML注入結合到一起來製造更大的威脅了。

如前所述,參數「customer_name」存在HTML注入漏洞。為了再次確認,我使用burpsuite截獲了一個正常的提交用戶信息請求,然後在customer_name插入了H1標籤:

接著,我向自己的帳戶發送了一封密碼找回郵件:

漏洞確認成功!

實際利用

由於name參數存在HTML注入,因此我們可以編寫一個假冒頁面的HTML代碼,最好看起來是需要用戶提交的表單。

然後我們利用cookie劫持漏洞,它能讓我們利用在瀏覽器中的cookie去登錄受害者帳戶。如果受害者是在公共環境中某個區域網中登錄的,那麼可按照以下步驟利用漏洞攻擊。

  1. 當受害者使用公共電腦登錄到他的賬戶。並在操作完成後,通過註銷功能離開網站。
  2. 攻擊者在受害者使用過的計算機上捕獲cookie並登錄受害者的帳戶。
  3. 攻擊者把自定義的惡意HTML代碼注入存在漏洞的欄位。
  4. 當受害者在重新登錄帳戶時,就會看到攻擊者自定義的「新頁面」。

當然,這一攻擊需要和受害者進行互動,例如,使用某些著名的網路釣魚攻擊效果會更好。

來源:利用Cookie劫持+HTML注入進行釣魚攻擊|NOSEC安全訊息平臺 - NOSEC.ORG

白帽匯從事信息安全,專註於安全大數據、企業威脅情報。

公司產品:FOFA-網路空間安全搜索引擎、FOEYE-網路空間檢索系統、NOSEC-安全訊息平臺。

為您提供:網路空間測繪、企業資產收集、企業威脅情報、應急響應服務。


推薦閱讀:
相關文章