Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
web3-decoder — Burp-Suite-Erweiterung zum Dekodieren von Web3-JSON-RPC-Traffic, einschließlich Smart-Contract-Funktionsaufrufen, Antworten und ABI-Auflösung mit Proxy- und Multicall-Unterstützung. | Kitploit
Tools/GitHubGitHub/nccgroup/web3-decoder
SchwachstellenanalyseReverse EngineeringInformationsbeschaffungWebsicherheitPenetrationstestsAPI-Sicherheit
GitHubnccgroup/web3-decoder

web3-decoder

Burp-Suite-Erweiterung zum Dekodieren von Web3-JSON-RPC-Traffic, einschließlich Smart-Contract-Funktionsaufrufen, Antworten und ABI-Auflösung mit Proxy- und Multicall-Unterstützung.

Repository anzeigen
11518vor 2 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Web3 Decoder

Web3 Decoder ist eine Burp-Suite-Erweiterung, die dabei hilft zu analysieren, was bei den Operationen mit Smart Contracts des Web3 vor sich geht. Dabei handelt es sich hauptsächlich um JSON-RPC-Aufrufe an Ethereum-Knoten und Knoten anderer kompatibler Netzwerke (wie Polygon, Arbitrum, BSC...)

Download und Installation

Lade die neueste Erweiterungs-JAR herunter – dieser Link liefert immer die neueste Version:

⬇ web3-decoder.jar (neueste)

Ältere Versionen findest du auf der Releases-Seite.

Lade sie dann in Burp Suite:

  1. Gehe zu Extensions → Installed → Add.
  2. Setze Extension type auf Java und wähle die heruntergeladene web3-decoder.jar.
  3. Klicke auf Next – sobald es geladen ist, erscheinen der Web3-Tab und die Editor-Tabs Web3 Request/Web3 Response.

Erfordert eine Burp-Version, die mit JRE 21 gebündelt ist (aktuelle Burp-Suite-Versionen). Die JAR ist eigenständig – alle Abhängigkeiten (web3j usw.) sind enthalten.

Aus dem Quellcode erstellen

root@kitploit:~
./gradlew jar

Die Erweiterungs-JAR wird unabhängig von der Version immer in einen festen Pfad geschrieben – web3-decoder/build/libs/web3-decoder.jar –, sodass du Burp einmal darauf zeigen lassen kannst und sie bei Neubauten automatisch neu geladen wird. Das Releasing ist in docs/RELEASING.md dokumentiert.

Screenshots

So sehen unsere verbesserten Web3-Editor-Tabs nach dem erfolgreichen Dekodieren deiner JSON-RPC-Anfragen und -Antworten aus:

Dekodierte Web3-Anfragen und -Antworten

Darunter der neu gestaltete Web3-Tab mit allen Einstellungen, erkannten ABIs und mehr! (Danke an Claude Design!)

Web3-Tab

Dokumentation

Ausführliche Dokumentation befindet sich im Ordner docs/:

  • Architektur — Ebenen, Komponenten und die wichtigsten Dekodier-/Kodierabläufe (mit Diagrammen).
  • Projektstruktur — Verzeichnisstruktur und Verantwortlichkeiten pro Paket.
  • Tech-Stack — Abhängigkeiten, Build/Packaging, Laufzeit und CLI-Modus.
  • Funktionen — vollständiger Funktionskatalog mit Implementierungshinweisen.

API-Schlüssel für Block-Explorer

Die meisten unterstützten Block-Explorer wie etherscan.io erfordern einen API-Schlüssel, um mehr als 1 Anfrage pro 5 Sekunden zu erlauben.

Die neue Oberfläche ermöglicht dir die Verwaltung der Chains, Block-Explorer und API-Schlüssel.

Manuelles Hinzufügen der ABI eines Vertrags

Die Erweiterung zwischenspeichert die heruntergeladenen ABIs von den Block-Explorern wie Etherscan. Du kannst sie auch direkt aus dem Web3-Tab hinzufügen, indem du sie automatisch vom Block-Explorer abrufst oder manuell hinzufügst.

Implementierte Funktionen

  • Burp-Integration
    • Editor-Tab Web3 Request für JSON-RPC-Anfragen (bei Traffic ohne eth_call / eth_sendRawTransaction ausgeblendet).
    • Editor-Tab Web3 Response für passende JSON-RPC-Antworten.
    • Eigener Web3-Suite-Tab mit Chain-/ABI-/Calldata-Werkzeugen.
    • Proxy-Verlaufseinträge, die in ihrer Notiz mit der dekodierten Funktionssignatur annotiert werden (dekodiert außerhalb des Threads, im Live-Verlaufseintrag gespeichert).
  • Editor-Erlebnis beim Dekodieren
    • Beide Editor-Tabs bieten standardmäßig eine strukturierte Baumansicht, mit einer JSON-Ansicht nur einen Umschalter entfernt – das JSON bleibt die maßgebliche Quelle für das erneute Kodieren.
    • Die JSON-Ansicht behält Syntax- und semantische Hervorhebung, Zeilennummern, Klammerpaar-Abgleich, Live-Gültigkeit und eine Suchleiste.
  • JSON-RPC-Anfrage-Dekodierung
    • Dekodiert eth_call-Calldata in function + typisierte args.
    • Unterstützt Einzelanfragen und Batch-JSON-RPC-Payloads.
    • Bei Batch-Payloads wird jedes Element mit Status (decoded, skipped, ) und Grund gemeldet, wenn es übersprungen/fehlgeschlagen ist.

Bisher unterstützte Chains

Die vollständige, aktuelle Liste der gebündelten Chains befindet sich in web3-decoder/src/main/resources/chains.json — die Erweiterung enthält jetzt den Etherscan-v2-Multichain-Satz (Ethereum, Sepolia, BNB Smart Chain, Polygon, Base, Arbitrum, Linea, Blast, Optimism, Avalanche, Gnosis, Scroll, Taiko, Berachain und viele weitere, einschließlich ihrer Testnets). Die Oberfläche ermöglicht es dir außerdem, zur Laufzeit eigene Chains hinzuzufügen – jede Chain, deren Block-Explorer Etherscan-ähnliche APIs bereitstellt, funktioniert. Weitere Details zur Chain-Verwaltung (einschließlich Migration veralteter Chain-IDs) findest du in Funktionen.

So funktioniert es

Die Erweiterung sendet eine eth_chainId-JSON-RPC-Anfrage an den verwendeten Knoten, um zu erkennen, an welcher Chain wir arbeiten, und wählt je nach Chain eine Block-Explorer-API aus, indem sie in der Datei chains.json sucht.

Um Funktionsaufrufe zu dekodieren, benötigen wir die ABI (Application Binary Interface) des Vertrags, die alle Funktionen enthält, die im Vertrag aufgerufen werden können, sowie deren Ein- und Ausgaben. Die Erweiterung löst ABIs in dieser Reihenfolge auf:

  1. Gecachte ABI für die Chain + Vertragsadresse (Burp-projektspezifische Persistenz).
  2. Builtin-ABIs für bekannte Verträge (z. B. Multicall3).
  3. Block-Explorer-Lookup (Etherscan-kompatible API) für verifizierte Verträge.
  4. Erkannter ABI-Pool – ABIs, die der passive Scanner aus Dapp-Frontend-Bundles herausgelöst hat, indiziert nach 4-Byte-Funktionsselektor. Chain-agnostisch.
  5. 4byte-Fallback – Selektor → Signatur-Lookup gegen api.4byte.sourcify.dev, mit einer synthetischen ABI, die aus passenden Kandidaten erstellt wird.

Wenn die Chain-ID nicht ermittelt werden kann (z. B. weil der Endpunkt nicht auf eth_chainId antwortet), werden die chain-bezogenen Schritte (1–3) übersprungen und der Dekodierer versucht trotzdem die chain-agnostischen Schritte (4 und 5).

Externe Dienste und Datenquellen

Um Traffic zu dekodieren, spricht die Erweiterung einige externe Quellen an. Diese sind optional und du kannst sie im Web3-Tab deaktivieren. Alle ausgehenden Anfragen werden über Burps eigenen HTTP-Stack (api.http().sendRequest) gesendet, sodass sie Burps Upstream-Proxy-/TLS-Einstellungen respektieren und im Burp-Traffic erscheinen.

Hinweis zum Datenschutz: ABI-Suchen senden die Vertragsadresse an den konfigurierten Block-Explorer, und der 4byte-Fallback sendet den Funktionsselektor an api.4byte.sourcify.dev. Heruntergeladene ABIs werden lokal zwischengespeichert, sodass wiederholte Dekodierungen nicht erneut abfragen. Die meisten Explorer (z. B. etherscan.io) benötigen für mehr als ~1 Anfrage / 5 Sekunden einen API-Schlüssel – Schlüssel lassen sich im Web3-Tab verwalten.

Der passive ABI-Detektor liest HTTP-Antwortkörper, die Burp bereits erfasst hat, und läuft vollständig lokal – durch die Erkennung selbst wird kein Traffic erzeugt.

Tool herunterladen
error
  • JSON-RPC-Antwort-Dekodierung
    • Dekodiert result für zuvor dekodierte eth_call-Anfragen.
    • Unterstützt Einzel- und Batch-Antworten und gleicht Einträge über die JSON-RPC-id ab (oder per Index-Fallback).
  • Erneutes Kodieren und Bearbeitungs-Workflow
    • Du kannst dekodierte Argumente im Anfrage-Editor bearbeiten und zurück in kodiertes Calldata schreiben.
    • Das eigenständige Calldata-Tool kann außerhalb der Anfragehistorie dekodieren und erneut kodieren.
  • ABI-Auflösung und Caching
    • ABI-Lookup-Priorität: gecachte ABI → builtin → Block-Explorer (Etherscan-kompatibel) → passiv erkannter Pool → 4byte.
    • Heruntergeladene ABIs werden automatisch für zukünftige Dekodierungen zwischengespeichert.
    • Die ABI-Quelle wird in der dekodierten Ausgabe nachverfolgt (cache, builtin, etherscan, detected oder 4byte).
  • Passive ABI-Erkennung (neu)
    • Ein Burp-PassiveScanCheck scannt HTTP-Antwortkörper (typischerweise minifizierte Dapp-JS-Bundles) nach Solidity-ABIs und speichert alles Gefundene in einem projektbezogenen Pool, der nach Funktionsselektor indiziert ist.
    • Behandelt sowohl striktes JSON als auch die JS-Objektliteral-Form in minifizierten Bundles, einschließlich der !0 / !1-Booleschen Kurzformen, die von Terser/esbuild/Svelte erzeugt werden.
    • Wenn die bestehende Kette cache → builtin → Etherscan keinen Treffer liefert, zieht der Dekodierer den erkannten Pool heran, bevor er auf 4byte zurückfällt. Die dekodierte Ausgabe wird mit decodeSource: "detected" gekennzeichnet.
    • Funktioniert auch, wenn eth_chainId nicht ermittelt werden kann: Der erkannte Pool und 4byte sind chain-agnostisch, daher versucht der Dekodierer sie trotzdem, anstatt grundsätzlich abzulehnen.
    • Jede neue ABI erzeugt einen informativen Burp-Issue ("Solidity contract ABI detected") mit der vollständigen Methodenliste – jede Funktion/jedes Ereignis/jeder Fehler mit seiner kanonischen Signatur und dem 4-Byte-Selektor – sowie der URL, an der die ABI gefunden wurde.
  • 4byte-Fallback-Dekodierung
    • Wenn die ABI-Suche fehlschlägt, wird eine Funktionsselektor-Suche gegen api.4byte.sourcify.dev durchgeführt.
    • Aus Kandidatensignaturen werden synthetische ABI-Definitionen erzeugt und für Dekodier-/Kodierabläufe verwendet.
  • Proxy-bewusste Dekodierung
    • Erkennt Implementierungsverträge für Delegate-Proxy-Muster und dekodiert gegen die Implementierungs-ABI.
    • Implementierte Proxy-Erkennungen: ERC1967-Slot und Legacy-ZeppelinOS/OpenZeppelin-Slot.
  • Rekursive Multicall-Dekodierung
    • Dekodiert verschachtelte Aufrufe für gängige Multicall-Varianten: aggregate, tryAggregate, aggregate3, aggregate3Value, blockAndAggregate, tryBlockAndAggregate.
    • Dekodiert verschachtelte Aufrufe rekursiv mit Tiefenbegrenzung und Status pro Knoten.
  • Verwaltungsoberfläche für Chains und Explorer
    • Chain-Definitionen hinzufügen/bearbeiten/entfernen (Chain-ID, Name, Explorer).
    • Verwaltung der Explorer-API-Schlüssel pro Chain.
    • Unterstützung gemeinsamer API-Schlüssel der Etherscan-Familie mit Überschreibung pro Chain.
    • Lädt Standard-Chains aus chains.json und speichert Anpassungen in den Burp-Einstellungen.
    • Enthält Migration veralteter Chain-IDs zu modernen Ersetzungen (für gespeicherte Konfigurationen).
  • Verwaltungsoberfläche für gecachte ABIs
    • Gecachte ABI manuell hinzufügen (JSON einfügen) oder vom konfigurierten Explorer abrufen.
    • Gecachte ABI-Einträge entfernen.
    • Gecachte ABIs im Editor öffnen, JSON validieren und Aktualisierungen speichern.
  • Browser-Oberfläche für erkannte ABIs (neu)
    • Nebeneinander angeordnetes Panel unter dem Web3-Tab, das jede ABI auflistet, die der passive Scanner angesammelt hat.
    • Jede Zeile zeigt einen kurzen Fingerabdruck, die Funktionsanzahl und die URL, an der die ABI zuerst gesehen wurde.
    • Klicke auf eine Zeile, um die ABI-JSON schreibgeschützt im ABI-Editor anzusehen; entferne unerwünschte Einträge aus dem Pool.
  • Calldata-Dekodier-/Re-Kodier-Panel
    • Dekodiere Calldata mit Kontext aus Chain-ID + Vertragsadresse.
    • Optionale RPC-URL-Unterstützung für proxy-bewusste Dekodierung im eigenständigen Tool.
    • Zeigt bei Bedarf Details zu verschachtelten Multicall-Dekodierungen an.
  • Dekodierung von eth_sendRawTransaction-JSON-RPC-Aufrufen (und ihrer inneren Funktionen)
  • DienstEndpunktVerwendet für
    JSON-RPC-Knoten (der Endpunkt, der bereits in deinem Traffic vorhanden ist)die proxierte RPC-URLeth_chainId zur Erkennung der aktiven Chain und eth_getStorageAt zum Lesen der Proxy-Implementierungsslots (ERC-1967 / Legacy-ZeppelinOS).
    Etherscan (v2 Multichain)https://api.etherscan.io/v2/api?chainid=…Abrufen verifizierter Vertrags-ABIs. Fallback auf den Legacy-Explorer-Host einer Chain (/api), wenn v2 diese Chain nicht unterstützt.
    4byte-Signaturdatenbankhttps://api.4byte.sourcify.devAuflösung eines unbekannten 4-Byte-Funktionsselektors zu Kandidatensignaturen, wenn keine ABI verfügbar ist (aus dem Treffer wird dann eine synthetische ABI erstellt).