比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

慢霧:瀏覽器惡意書簽是如何盜取你的Discord Token的?_SCO

Author:

Time:1900/1/1 0:00:00

作者:耀@慢霧安全團隊背景

區塊鏈的世界遵循黑暗森林法則,在這個世界我們隨時可能遭受到來自不明的外部攻擊,作為普通用戶不進行作惡,但是了解黑客的作惡的方式是十分必要的。慢霧安全團隊此前發布了區塊鏈黑暗森林自救手冊,其中提到了不少關于針對NFT項目方的Discord進行攻擊的手法,為了幫助讀者對相關釣魚方式有更清晰的認知,本文將揭露其中一種釣魚方法,即通過惡意的書簽來盜取項目方Discord賬號的Token,用來發布虛假信息等誘導用戶訪問釣魚網站,從而盜取用戶的數字資產。釣魚事件

先來回顧一起Discord釣魚事件:2022年3月14日,一則推特稱NFT項目WizardPass的Discord社區被詐騙者入侵,目前已造成BAYC、Doodles、CloneX等NFT被盜,詳情如下:

慢霧:跨鏈互操作協議Nomad橋攻擊事件簡析:金色財經消息,據慢霧區消息,跨鏈互操作協議Nomad橋遭受黑客攻擊,導致資金被非預期的取出。慢霧安全團隊分析如下:

1. 在Nomad的Replica合約中,用戶可以通過send函數發起跨鏈交易,并在目標鏈上通過process函數進行執行。在進行process操作時會通過acceptableRoot檢查用戶提交的消息必須屬于是可接受的根,其會在prove中被設置。因此用戶必須提交有效的消息才可進行操作。

2. 項目方在進行Replica合約部署初始化時,先將可信根設置為0,隨后又通過update函數對可信根設置為正常非0數據。Replica合約中會通過confirmAt映射保存可信根開始生效的時間以便在acceptableRoot中檢查消息根是否有效。但在update新根時卻并未將舊的根的confirmAt設置為0,這將導致雖然合約中可信根改變了但舊的根仍然在生效狀態。

3. 因此攻擊者可以直接構造任意消息,由于未經過prove因此此消息映射返回的根是0,而項目方由于在初始化時將0設置為可信根且其并未隨著可信根的修改而失效,導致了攻擊者任意構造的消息可以正常執行,從而竊取Nomad橋的資產。

綜上,本次攻擊是由于Nomad橋Replica合約在初始化時可信根被設置為0x0,且在進行可信根修改時并未將舊根失效,導致了攻擊可以構造任意消息對橋進行資金竊取。[2022/8/2 2:52:59]

慢霧:Cover協議被黑問題出在rewardWriteoff具體計算參數變化導致差值:2020年12月29日,慢霧安全團隊對整個Cover協議被攻擊流程進行了簡要分析。

1.在Cover協議的Blacksmith合約中,用戶可以通過deposit函數抵押BPT代幣;

2.攻擊者在第一次進行deposit-withdraw后將通過updatePool函數來更新池子,并使用accRewardsPerToken來記錄累計獎勵;

3.之后將通過_claimCoverRewards函數來分配獎勵并使用rewardWriteoff參數進行記錄;

4.在攻擊者第一次withdraw后還留有一小部分的BPT進行抵押;

5.此時攻擊者將第二次進行deposit,并通過claimRewards提取獎勵;

6.問題出在rewardWriteoff的具體計算,在攻擊者第二次進行deposit-claimRewards時取的Pool值定義為memory,此時memory中獲取的Pool是攻擊者第一次withdraw進行updatePool時更新的值;

7.由于memory中獲取的Pool值是舊的,其對應記錄的accRewardsPerToken也是舊的會賦值到miner;

8.之后再進行新的一次updatePool時,由于攻擊者在第一次進行withdraw后池子中的lpTotal已經變小,所以最后獲得的accRewardsPerToken將變大;

9.此時攻擊者被賦值的accRewardsPerToken是舊的是一個較小值,在進行rewardWriteoff計算時獲得的值也將偏小,但攻擊者在進行claimRewards時用的卻是池子更新后的accRewardsPerToken值;

10.因此在進行具體獎勵計算時由于這個新舊參數之前差值,會導致計算出一個偏大的數值;

11.所以最后在根據計算結果給攻擊者鑄造獎勵時就會額外鑄造出更多的COVER代幣,導致COVER代幣增發。具體accRewardsPerToken參數差值變化如圖所示。[2020/12/29 15:58:07]

書簽在點擊時可以像在開發者工具控制臺中的代碼一樣執行,并且會繞過CSP策略。讀者可能會有疑問,類似「javascript:()」這樣的鏈接,在添加進入到瀏覽器書簽欄,瀏覽器竟然會沒有任何的提醒?筆者這里以谷歌和火狐兩款瀏覽器來進行對比。使用谷歌瀏覽器,拖拽添加正常的URL鏈接不會有任何的編輯提醒。

使用谷歌瀏覽器,拖拽添加惡意鏈接同樣不會有任何的編輯提醒。

使用火狐瀏覽器如果添加正常鏈接不會有提醒。

使用火狐瀏覽器,如果添加惡意鏈接則會出現一個窗口提醒編輯確認保存。

由此可見在書簽添加這方面火狐瀏覽器的處理安全性更高。場景演示

演示采用的谷歌瀏覽器,在用戶登錄Web端Discord的前提下,假設受害者在釣魚頁面的指引下添加了惡意書簽,在DiscordWeb端登錄時,點擊了該書簽,觸發惡意代碼,受害者的Token等個人信息便會通過攻擊者設置好的Discordwebhook發送到攻擊者的頻道上。下面是演示受害者點擊了釣魚的書簽:

下面是演示攻擊者編寫的JavaScript代碼獲取Token等個人信息后,通過DiscordServer的webhook接收到。

筆者補充幾點可能會產生疑問的攻擊細節:1.為什么受害者點了一下就獲取了?通過背景知識我們知道,書簽可以插入一段JavaScript腳本,有了這個幾乎可以做任何事情,包括通過Discord封裝好的webpackChunkdiscord_app前端包進行信息獲取,但是為了防止作惡的發生,詳細的攻擊代碼筆者不會給出。2.為什么攻擊者會選擇Discordwebhook進行接收?因為Discordwebhook的格式為“https://discord.com/api/webhooks/xxxxxx”,直接是Discord的主域名,繞過了同源策略等問題,讀者可以自行新建一個Discordwebhook進行測試。3.拿到了Token又能怎么樣?拿到了Token等同于登錄了Discord賬號,可以做登錄Discord的任何同等操作,比如建立一個Discordwebhook機器人,在頻道里發布公告等虛假消息進行釣魚。總結

攻擊時刻在發生,針對已經遭受到惡意攻擊的用戶,建議立刻采取如下行動進行補救:立刻重置Discord賬號密碼。重置密碼后重新登錄該Discord賬號來刷新Token,才能讓攻擊者拿到的Token失效。刪除并更換原有的webhook鏈接,因為原有的webhook已經泄露。提高安全意識,檢查并刪除已添加的惡意書簽。作為用戶,重要的是要注意任何添加操作和代碼都可能是惡意的,Web上會有很多的擴展看起來非常友好和靈活。書簽不能阻止網絡請求,在用戶手動觸發執行的那一刻,還是需要保持一顆懷疑的心。

Tags:ISCORDSCOSCORisc幣騙局ordi幣價格SCOR幣

火幣下載
全面解讀「NFT銀行」BendDAO:如何用1個BAYC領2個空投?_NFT

撰文:0xLaughing,律動BlockBeats4月NFT市場是火熱躁動的,先是以Moonbirds為首的NFTPASS賽道因其顯著的財富效應而名聲大噪.

1900/1/1 0:00:00
Tweeter DAO:如果我們統治了推特_WIT

本文來自微信公眾號老雅痞。周四,一份新修訂的13D文件顯示,埃隆?馬斯克召集了團隊,從他440億美元的推特收購報價中拿出了71億美元。 這很有趣,原因有幾個.

1900/1/1 0:00:00
開啟死亡螺旋or壓力測試結束?UST能被拯救嗎_USDT

算法穩定幣龍頭TerraUSD正處于災難性的混亂之中。Coingecko數據顯示,隨著近日加密貨幣市場整體下挫,BTC一度跌破30000美元關口,UST脫離錨點的幅度越來越大,于北京時間5月10.

1900/1/1 0:00:00
FOMO過后,重新思考「跨鏈NFT」的價值邏輯_NFT

撰文:0xCookie,律動BlockBeats最近,以Gh0stlyGh0sts、tinydinos為首的「跨鏈NFT」的上漲引人矚目。 作為FreeMint的項目,如此的漲幅可謂驚人.

1900/1/1 0:00:00
數據解讀:Otherdeed二級市場承壓后還值得入手嗎?_THE

YugaLabs在Web3前沿的探索中又落下重要一子,與AnimocaBrands一起推出了一個游戲化的、可互操作的元宇宙Otherside.

1900/1/1 0:00:00
擴容范式轉變之下,兩類鏈游分道揚鑣_LAYER

游戲行業正在慢慢意識到區塊鏈技術能極大地改變游戲格局,并使玩家受益。但是區塊鏈技術正受制于可擴展性的瓶頸,需要在保證去中心化、不增加驗證成本的情況下,增加計算帶寬.

1900/1/1 0:00:00
ads