Intelligente Verträge

Dec 11 2022
Tag 8 THM-Advent von cyber 4
Bei dieser Aufgabe wurde viel Theorie über eine Smart-Contract-Schwachstelle vermittelt, bevor wir uns tatsächlich mit der praktischen Anwendung der grundlegenden Schwachstelle befassen. Obwohl es ziemlich schwer zu verstehen ist, wenn Sie nicht mit Blockchain und Smart Contracts vertraut sind, empfehle ich Ihnen, es kurz zu lesen, um eine ungefähre Vorstellung davon zu bekommen, was die Szene auf der Bühne ist.

Bei dieser Aufgabe wurde viel Theorie über eine Smart-Contract-Schwachstelle vermittelt, bevor wir uns tatsächlich mit der praktischen Anwendung der grundlegenden Schwachstelle befassen.

Obwohl es ziemlich schwer zu verstehen ist, wenn Sie nicht mit Blockchain und Smart Contracts vertraut sind, empfehle ich Ihnen, es kurz zu lesen, um eine ungefähre Vorstellung davon zu bekommen, was die Szene auf der Bühne ist.

Kommen wir zur Komplettlösung der Herausforderungen.

Wir werden Remix IDE verwenden , das eine sichere und kontrollierte Umgebung zum Testen und Bereitstellen von Verträgen bietet, als ob sie sich auf einer öffentlichen Blockchain befänden.

Lassen Sie uns nun die Dateien herunterladen und diese IDE in unserem Browser öffnen.

Wenn Sie Remix zum ersten Mal öffnen, möchten Sie Ihre Aufmerksamkeit auf die linke Seite lenken; Es wird jeweils von oben nach unten einen Datei-Explorer, eine Suche, einen Solidity-Compiler und eine Deployment-Navigationsschaltfläche geben. Wir werden die meiste Zeit im Menü „Deploy & Run Transactions“ verbringen, da es uns ermöglicht, aus einer Umgebung, einem Konto und einem Vertrag auszuwählen und mit den von uns zusammengestellten Verträgen zu interagieren.

Fahren Sie fort und öffnen Sie die beiden Dateien, die Sie in local_workspace heruntergeladen haben.

Navigieren Sie danach zu beiden Dateien und kompilieren Sie beide Dateien unter Solidity Compiler.

Gehen Sie danach zu Transaktionen bereitstellen und ausführen und wählen Sie einen Vertrag aus.

Die etherstore.sol wird die erste sein, die wir bereitstellen werden. Ändern Sie nach dem Deployment den Wert auf 1 und klicken Sie unter Deployed Contracts auf Deposit.

Das Guthaben ändert sich von 0 auf 1, Sie können den Wert auf eine beliebige Zahl einstellen :)

Jetzt ist es an der Zeit, unseren Angriff einzusetzen. Gehen Sie zur Angriffsdatei und stellen Sie dann Transaktionen bereit und führen Sie sie aus

Um dies bereitzustellen, benötigen Sie eine Adresse, gehen Sie zu Bereitstellungen und kopieren Sie die Adresse von Etherstore.
Fügen Sie dies ein und stellen Sie die attack.sol bereit

Sie sehen jetzt einen Angriff unter bereitgestellten Verträgen, alles, was Sie tun müssen, ist den Wert auf 1 zu ändern und auf "Angriff" zu klicken.

Ich habe dreimal darauf geklickt, also habe ich 3ETH als Guthaben erhalten, aber wir haben nur 1 eingezahlt.

Dies ist die zuvor im Raum beschriebene Schwachstelle.

Dieser Raum war etwas überwältigend, aber wir bekamen endlich eine Vorstellung davon, wie Smart Contracts funktionieren und wie wir eine grundlegende Schwachstelle ausnutzen können.

Von Infosec Writeups: In der Infosec kommt jeden Tag eine Menge auf, mit der es schwer ist, Schritt zu halten. Abonnieren Sie unseren wöchentlichen Newsletter , um KOSTENLOS die neuesten Infosec-Trends in Form von 5 Artikeln, 4 Threads, 3 Videos, 2 GitHub-Repos und -Tools sowie 1 Jobbenachrichtigung zu erhalten!