Es gibt eine neue Klasse von Menschen, die alle versuchen, die NFTStrategy-Verträge auszunutzen. Als selbsternannter Wächter dieser Verträge schaue ich mir an, wie jeder Teilnehmer agiert. Die meisten setzen nicht geprüfte Verträge ein, typischerweise zusammen mit EIP7702-Delegationen. 1/🧵
2/ Ich kann nicht genug betonen, dass du, bevor du dein ganzes Konto an einen Vertrag delegierst, den du mit Hilfe von ChatGPT erstellt hast... eigentlich, delegiere dein ganzes Konto einfach nicht an einen Vertrag, den du mit Hilfe von ChatGPT erstellt hast.
3/ Einige Leute verwenden leere EOAs, um das Arbitragegeschäft zu betreiben. Das ist im Allgemeinen in Ordnung, da ein Vertragsausnutzungsrisiko höchstens das betrifft, was Sie auf Ihrem Konto haben. Sie setzen sich jedoch weiterhin einem Risiko aus, wenn Sie das Konto in Zukunft für etwas anderes verwenden.
4/ Zum Beispiel, wenn 0xB4 jemals einen Bored Ape erwirbt, ohne zuvor die Genehmigung, die ich auf seinem Konto erzwungen habe, zu widerrufen, gehört der Ape so gut wie mir. Ich würde ihn natürlich niemals nehmen, das war nur eine Onchain-Warnung.
5/ Ähnlich wie beim OS-Benutzer "deadcells": Ich habe dein EPG #35 und Howlerz #3924. Delegiere an einen neuen Vertrag mit einer Form von Zugriffskontrolle, insbesondere da dein fest codierter Miner-Tipp verwendet werden kann, um dein ETH gewaltsam abzuziehen. Ich werde die NFTs natürlich zurückgeben, sobald du sicher bist.
7/ Das Problem ist dreifach: Erstens gibt es keine Überprüfung, um sicherzustellen, dass der Strategievertrag die Funktion aufruft. Zweitens gibt es keine Überprüfung, um sicherzustellen, dass der Marktplatzaufruf ein NFT kauft. Drittens gibt es keine Überprüfung, um sicherzustellen, dass das übertragene NFT überhaupt ein NFT ist.
8/ Der Exploit ist einfach: Der Marktplatzaufruf wird buchstäblich zu dem, was du willst (eine NFT-Übertragung, WETH-Genehmigung oder einen beliebigen willkürlichen Vertragsaufruf). Die NFT-Übertragung kann wirklich alles sein, solange der Vertrag eine transferFrom-Funktion hat, die nicht revertiert.
9/ In den oben genannten Fällen habe ich eine Übertragung mit einem Nullwert auf USDC ausgelöst, indem ich "0" als die erwartete Token-ID angegeben habe. "transferFrom(them, me, 0)" ist technisch gesehen eine gültige Übertragung aus der Sicht des USDC-Vertrags.
10/ Also nochmal ein Aufruf an alle: Lasst eure Verträge prüfen, egal wie einfach ihr denkt, dass sie sind. Dieser Bereich ist gefährlich, und ihr solltet davon ausgehen, dass jeder es auf euch abgesehen hat (das tun sie).
Original anzeigen
79.606
346
Der Inhalt dieser Seite wird von Drittparteien bereitgestellt. Sofern nicht anders angegeben, ist OKX nicht der Autor der zitierten Artikel und erhebt keinen Anspruch auf das Urheberrecht an den Materialien. Die Inhalte dienen ausschließlich zu Informationszwecken und spiegeln nicht die Ansichten von OKX wider. Sie stellen keine Form der Empfehlung dar und sind weder als Anlageberatung noch als Aufforderung zum Kauf oder Verkauf digitaler Assets zu verstehen. Soweit generative KI zur Bereitstellung von Zusammenfassungen oder anderen Informationen eingesetzt wird, kann der dadurch erzeugte Inhalt ungenau oder widersprüchlich sein. Mehr Infos findest du im verlinkten Artikel. OKX haftet nicht für Inhalte, die auf Drittpartei-Websites gehostet werden. Digitale Assets, einschließlich Stablecoins und NFT, bergen ein hohes Risiko und können stark schwanken. Du solltest sorgfältig überlegen, ob der Handel mit oder das Halten von digitalen Assets angesichts deiner finanziellen Situation für dich geeignet ist.