內容概要粉絲反饋,他在opensea無gas免費創建的NFT資產,竟能出現在小狐貍錢包里,而opensea官方聲明的此NFT在正式交易前是未上鏈鑄造的,這就很奇怪,中心化應用的資產出現在為去中心化應用服務的錢包里,到底是官方代付gas上鏈還是烏龍,隨我一文揭曉!目錄大綱
1.背景簡述2.破案歷程2.1小狐貍網絡抓包2.2鏈上的交易統計2.3合約反編譯分析3.破案總結面向對象Web3新手,有無技術背景均可理解此文解密過程背景簡述
1.1opensea是什么?
全球最大的公鏈NFT交易平臺,也是目前除以太坊鏈底層外營收最大的web3平臺,下文簡述為os
1.2NFT是什么?
可見前文:你買的NFT到底是什么?1.3NFT鑄造是什么?
可見前文:當奈飛的NFT忘記了web2的業務安全大意是,只有在鏈上Mint后的才能認為是資產,且一般用戶需要付gas1.4os的免費創造NFT服務是什么?
NFT上鏈成本高,標準ERC721的mint需要8W的gas,約5刀NFT定制合約難,雖有標準但頂級NFT項目會定制且部分強化功能,例如azuki
Opera推出AI服務Aria,支持聯網查找信息、生成文本或代碼等:5月25日消息,Web3瀏覽器Opera推出與OpenAI合作的人工智能服務Aria。Aria將內置于瀏覽器中,基于Opera的Composer基礎架構并連接到OpenAI的GPT技術,支持用戶在網絡上查找信息、生成文本或代碼以及與AI協作回答產品查詢問題等。[2023/5/25 10:38:50]
因此,易用性一直就是市場的痛點,畢竟藝術家不是合約工程師,需更低成本的試錯來探索有價值的藝術品,官方也特別說明過在opensea.io上create的NFT,符合ERC1155標準,即使是它們存在于鏈上之前,這些NFT也可以在任何平臺上出售,在交易時才上鏈鑄造破案歷程
2.1案例來源
某粉絲很驚奇發現,自己確實可以在os上按流程進行create,但按官方說法此時是未上鏈的,但是他嘗試在小狐貍錢包里導入資產時發現,竟然已經可見,甚至嘗試導入一個自己未create的NFTID時也能導入成功,因此反饋我尋找技術維度的全貌解讀2.2還原方式
1:os上createNFT得到合約地址與ID2:小狐貍上開啟NFT檢測后,再手動添加收藏品,即出現SharedStorefront
OpenAI下周將向所有ChatGPT Plus用戶開放網頁瀏覽和插件功能:5月13日消息,據官方公告,OpenAI 下周將向所有 ChatGPT Plus 用戶開放網頁瀏覽和插件功能,允許 ChatGPT 訪問互聯網并使用 70 多個第三方插件。[2023/5/14 15:01:29]
2.3調查不易
其實查詢資產是否上鏈是個非常容易的過程,用區塊鏈瀏覽器即可見前文:當我們在看Etherscan的時候,到底在看什么?但是由于此os的NFT共享商店的合約并沒有做驗證。所以無法直接看源碼查數據但使用未經開源以及安全審計的合約,著實讓我這從事多年安全行業的職業強迫癥有些難受如果真存在風險,其危害是巨大的如果真未上鏈,小狐貍錢包去讀取中心化平臺數據?放在我的資產里?如果真上了鏈,用戶無需gas,則可能官方付費上鏈,雷同羊毛有被攻擊風險未上鏈的資產,如產生沖突風險,那此NFT屬于誰的?2.4小狐貍app抓包
首先咱們通過對照實驗做手機抓包,發現整體小狐貍會做的事情很多拉取地址余額,交易,最新塊內容,指定地址合約字節碼等等
Slope:發現漏洞后已刪除服務器端日志記錄,1444個被盜錢包或可追溯到該漏洞:8月4日消息,Solana生態錢包Slope表示,在發現中心化Sentry服務器引發的漏洞后已刪除服務器端日志記錄。目前,受影響的9223個錢包中有1444個(15%)可能被追溯到此漏洞。Slope正在與審計合作伙伴和Solana基金會合作,以發現任何潛在的額外攻擊媒介,并且已通知相關執法機構,以便對攻擊者進行刑事調查。
區塊鏈安全機構OtterSec此前在社交媒體上發文表示,在過去兩天內,超過400萬美元資產從Solana錢包中被盜,已經確認Slope移動應用通過TLS將助記符發送到其中心化Sentry服務器,然后這些助記符以明文形式存儲,這意味著任何有權訪問Sentry的人都可以訪問用戶私鑰。在本次攻擊中這些地址中的約1400個地址存在于Sentry中,不過這并非所有被盜地址。我們仍在調查可能的其他媒介。另外,在Sentry實例中發現了超5300個未包含在此次漏洞攻擊的私鑰,其中2358個地址中有Token,建議Slope用戶盡快轉移資金。[2022/8/4 12:01:44]
OpenZeppelin發布錯誤漏洞修復分析:金色財經報道,Whitehat Zb3 于 2021 年 8 月 21 日在 OpenZeppelin 的 TimelockController 合約中提交了一個嚴重的可重入漏洞,該漏洞影響了 Immunefi 漏洞賞金平臺上托管的一個項目。該項目選擇保持匿名,已向白帽子支付了一筆未公開的金額(包括匿名獎金),OpenZeppelin 慷慨地向白帽子支付了 25,000 美元的獎金,以表彰他們對社區安全的貢獻,并發布了補丁。
據其所知,這是 OpenZeppelin 在其開源智能合約庫中唯一存在的嚴重漏洞。該漏洞已在受影響的項目中進行了修補,OpenZeppelin 已發布了修復該漏洞的更新合約版本。所有使用 TimelockController 的項目都應該遷移。
據悉,Immunefi 是智能合約和 DeFi 項目的首要漏洞賞金平臺。(medium)[2021/9/3 22:56:37]
對數百個網絡包逐個分析后,發現其小狐貍會使用infura的eth-call方法,功能是查詢指定NFT合約中標準的balanceof方法為何我如此肯定?此請求包里沒有balanceof呀?咱們用實驗說話雙向校驗,標準的1155協議的標準函數名及參數為:functionbalanceOf(address,uint256)由于data構建指定函數調用,其生成Mothod-ID的原理是名字+參數類型組合,因此他構建的call方法,data字段的開頭必然為00fdd58e我輸入的要添加資產是123號,其data參數末尾對應是7b=(7*16+11=123)也對應上。同時發現其缺乏防重放的措施,所以我可以直接編輯參數重發請求查詢其他NFT合約所有權來對比:azuki:721標準,無得到0,有則非0愛死機:1155標準,無得到0,有則得1查os共享商店,修改參數尾數確實會得到值但意義不明所以這里我得出的一大驚奇猜想是:鏈上可查得NFT所有權的值,難道真的上鏈了嗎?2.5鏈上交易統計
OpenSea2月總交易額為9390.4萬美元 用戶總數突破5萬人:3月1日消息,據DuneAnalytics數據顯示,NFT交易平臺OpenSea2月總交易額達9390.4萬美元,約為1月總交易額的11.68倍,創歷史新高。OpenSea用戶總數突破5萬人。[2021/3/1 18:02:22]
如果真上鏈其實也可以不由用戶支付gas,有種“元交易”的技術手法,就是交易發起方和gas支付者不同的形式,并且openzepplin里特地有個content合約就是用于額外支持元交易產生的msg.sender可能特殊化的問題但是,我通過對此合約的鏈上交易數據統計,抽取23號一天出現的交易頻率可見下圖,都證明了好像并沒有固定由官方發起的元交易類型交易
2.6破局得靠合約反編譯
由于官方沒有驗證合約,導致分析起來費勁多了,但可通過合約反編譯來大致摸清邏輯如果只是openzepplin的標準1155庫進行反編譯的話,行數是170行但是此1155則反編譯后是1000行,因此必然有較多自定義實現反編譯后整體是吻合1155的數據標準
但是也顯著有不是標準數據部分
由于鏈上數據讀取返回了結果,所以重點分析balanceOf函數,他整體實現用了30多行,這是很明顯重寫了原先的標準函數
由于os他依舊是沿用標準,所以他的兩個參數是固定的可以理解為:Varg0=待查詢NFTid所有權的用戶地址varg1=待查詢的NFTID數字從反編譯程序里看邏輯,他會讀取待查地址的_balanceOf總余額數,以及此NFTID是否被_creator等等
最關鍵的一句address(varg1>>96)!=varg0由于反編譯不會完全按照solidity的語法,所以原本不支持的位移運算符就出現了不講復雜的,總之這里將varg1的其中一部分,和varg0做比較這也意味著,原來此NFT的ID包含了用戶的地址我頓然醒悟,寫個進制轉換,將我在os上create得到的NFTid傳入,解密得出
這個數值也和我在小狐貍抓包看到的data后半段內容是一致這里還可以繼續研讀代碼來挖掘細節比如balanceOf返回結果為2個值,會審計編號是否會超出_totalSupply限定發行量比如safeTransferFrom專門設置_mint防重放攻擊,在其中若未mint則進行首次鑄造在解讀出NFTID的組成后,我也頓時明白此合約的核心邏輯了此ID由3部分構成,用戶地址+系列編號+指定ID,這也意味著無論我鑄造多少次,前xx位都是固定的,即我的錢包地址轉為10進制而已,而他查詢的balanceof函數也因為我前綴統一,從而判別我是未鑄造前的所有者,因此理論上我的鑄造空間極其大。因此小狐貍確實能導入,因為前綴一致,balanceof在沒有所有者的情況下,會默認依據此NFTID對應的空間的所有者返回結果,如果發生鑄造轉移,也有合約中配套的owner_a和_creator來證明這個創作者和當前所有者的關系。至于為何小狐貍能出現NFT圖,這點是他官方聲明過的設置,出于讀取更多維度的描述說明、稀有度、原圖uri等信息,且用戶可關閉這個錢包去查詢os中心化數據庫的功能。
破案總結
小狐貍是無辜的,他只是用標準方法走infura讀取鏈上數據而已,并沒有特別加工并修改返回數據os不去驗證合約,有一定自我市場競爭保護的目的,但是不能阻擋妙手玩家對合約分析,卻給不少用戶帶來無法證明資產所有的困境最終,確實其NFT資產在交易轉移前未被鑄造上鏈,但由NFTID定義的空間已經被特殊設計可查得余額結果,所以理論上其他交易平臺也可買賣此NFT附錄:gas價格圖:https://etherscan.io/gastracker反編譯平臺:https://library.dedaub.com/decompilemetamask的NFT檢測功能說明:https://metamask.zendesk.com/hc/en-us/articles/360058238591-NFT-tokens-in-your-MetaMask-walletos共享商店合約地址:0x495f947276749ce646f68ac8c248420045cb7b5eOS官方聲明:https://support.opensea.io/hc/en-us/articles/1500003082561-Will-ERC-1155-NFTs-appear-in-my-wallet-https://opensea.io/blog/announcements/introducing-the-collection-manager/前文回顧
你買的NFT到底是什么?EIP-5058能否防止NFT項目方提桶跑路?當我們在看Etherscan的時候,到底在看什么?當奈飛的NFT忘記了web2的業務安全
Tags:NFTPENOPEN小狐貍FYZNFTPenceCoinOpen Proprietary Protocol小狐貍MetaMask官方
NFT數據日報是由Odaily星球日報與NFT數據整合平臺NFTGO合作的一檔欄目,旨在向NFT愛好者與投資者展示近24小時的NFT市場整體規模、交易活躍度.
1900/1/1 0:00:00來源:StarkWare博客整理:谷昱,鏈捕手今晚,以太坊Layer2擴容解決方案StarkWare連續發布三篇博客公布StarkNet代幣經濟模型,官宣將于今年9月發行該代幣.
1900/1/1 0:00:00眾所周知,以太坊有自己的虛擬機。什么意思呢?就是比特幣中的交易長這樣:“如果小明的簽名驗證通過,小明轉10元錢給小紅的地址.
1900/1/1 0:00:00昨天,我被朋友圈里鋪天蓋地的ERC-4907和DoubleProtocol刷屏了。作為一個從事NFT相關開發工作的以太坊社區開發者,筆者非常關注NFT生態相關的最新發展,因此在獲取到該消息的第一.
1900/1/1 0:00:00高昂的以太坊gas費用問題一直存在,越來越多用戶開始尋求其他替代方案,比如Avalanche、Solana、Polygon等,新用戶涌入這些替代網絡,整個生態系統也愈發繁茂.
1900/1/1 0:00:00代幣化是Web3的重大突破。它為創新創造了巨大的可能性,但也打開了潘多拉魔盒。任何人都可以創建一個代幣來代表任何有價值的東西,并在一個開放的網絡上根據共同標準來與其他資產進行交易,這是公鏈出來之.
1900/1/1 0:00:00