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 Ethereum-JSON-RPC-Aufrufen und Smart-Contract-Interaktionen, mit Unterstützung mehrerer Chains und automatischem ABI-Abruf. | Kitploit
Tools/GitHubGitHub/uwctcjnwlk/web3-decoder
SchwachstellenanalyseReverse EngineeringWebsicherheitPenetrationstestsAPI-Sicherheit
GitHubuwctcjnwlk/web3-decoder

web3-decoder

Burp Suite-Erweiterung zum Dekodieren von Ethereum-JSON-RPC-Aufrufen und Smart-Contract-Interaktionen, mit Unterstützung mehrerer Chains und automatischem ABI-Abruf.

Repository anzeigen
215419vor 9 TagenVon 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 zur Analyse von Blockchain-Operationen und Smart-Contract-Interaktionen. Sie verarbeitet JSON-RPC-Aufrufe an Ethereum und kompatible Netzwerke (einschließlich Polygon, Arbitrum, BSC und andere)

Block-Explorer-API-Schlüssel

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

Um Ihre API-Schlüssel hinzuzufügen, haben Sie 2 Optionen:

  • Sie können Ihre API-Schlüssel hinzufügen, indem Sie die Datei .api_keys.json ändern
  • Sie können Umgebungsvariablen mit denselben Namen wie in der API_KEYS.json-Datei hinzufügen
    • z. B.: export ETHERSCAN_API=YOURAPIKEY

Manuelles Hinzufügen der ABI eines Vertrags

Die Erweiterung speichert die heruntergeladenen ABIs von den Block-Explorern wie Etherscan in einem Ordner namens .abi_caches im JSON-Format. Sie können einfach eine neue Datei in diesem Ordner hinzufügen, mit der folgenden Namenskonvention:

{chain_id}_{contract_address.lower()}.abi

Zum Beispiel:

root@kitploit:~
# Ethereum Mainnet (Chain-ID 1), Vertrag 0xfbdca68601f835b27790d98bbb8ec7f05fdeaa9b
1_0xfbdca68601f835b27790d98bbb8ec7f05fdeaa9b.abi

# Polygon (Chain-ID 137), Vertrag 0x447646e84498552e62ecf097cc305eabfff09308
137_0x447646e84498552e62ecf097cc305eabfff09308.abi

Achtung Windows- und macOS-Benutzer:

Diese Dokumentation gilt für Windows und Linux; macOS-Benutzer können die DMG-Datei verwenden.

Überprüfen Sie, ob Git und Python auf Ihrem System vorhanden sind.

https://git-scm.com/install/windows

https://www.python.org/ftp/python/3.13.12/python-3.13.12-amd64.exe

Starten Sie eine Terminalsitzung als Administrator.

Vorkompilierte Binärdateien und Python3-Virtualenv

Diese Erweiterung benötigt Python3-Bibliotheken wie web3.py, die leider nicht für Python 2.7 verfügbar sind, um direkt mit Jython 2.7 verwendet zu werden. Als 'Hack' ist die Hauptfunktionalität in einer Python-3-Bibliothek geschrieben, die von der Erweiterung über eine Python-Virtual-Umgebung ausgeführt wird (um es mal deutlich zu sagen...)

Ich habe vorkompilierte Binärdateien der verwendeten Python3-Bibliothek für Linux, Windows und Mac OSX erstellt. Die Erweiterung verwendet diese Binärdateien, wenn sie die Bibliothek nicht ausführen kann. Für bessere Leistung oder Entwicklung können Sie ein Virtualenv erstellen und wie folgt installieren:

root@kitploit:~
cd "web3-decoder"
virtualenv -p python3 venv
source venv/bin/activate
pip install web3 py-evm

Die Erweiterung führt Aufrufe an die Bibliothek mithilfe des erstellten Virtualenv aus.

Sobald das Virtualenv erstellt ist, können Sie die Python-Erweiterung hinzufügen, indem Sie die Datei burp_web3_decoder.py im Extender- Tab von Burp Suite auswählen.

Funktionen und TODOs

  • Burp-EditorTab zu kompatiblen Requests und Responses hinzugefügt
  • Dekodierung von eth_call-JSON-RPC-Aufrufen
  • Dekodierung von eth_sendRawTransaction-JSON-RPC-Aufrufen (und ihrer inneren Funktionen)
  • Dekodierung von Antwort-Ergebnissen von eth_call
  • Unterstützung für die Neukodierung dekodierter eth_call-Funktionen
  • Automatischer Download der Smart-Contract-ABI, die über Etherscan-APIs aufgerufen wird (falls der Vertrag verifiziert ist)
  • Dekodierung von Funktions-Eingaben sowohl in eth_call als auch in eth_sendRawTransaction
  • Dekodierung von Funktions-Eingaben, die "Delegate-Proxy"-Verträge verwenden
  • Dekodierung von Funktions-Eingaben, die über "Multicall"-Verträge aufgerufen werden
  • Manuelles Hinzufügen von Vertrags-ABIs für Verträge, die nicht in Etherscan verifiziert sind
    • Ermöglichen, dies über die Burp-Oberfläche zu tun, anstatt das JSON in eine Datei zu schreiben
  • Vorkompilierte Binärdateien, damit die Erweiterung ohne Einrichtung funktioniert
  • Unterstützung für andere kompatible Netzwerke (Polygon, Arbitrum, Fantom, BSC usw.)
  • Unterstützung für die Neusignierung einer modifizierten dekodierten rawTransaction (erfordert Eingabe des privateKey)

Bisher unterstützte Chains

Alle unterstützten Chains finden Sie in der Datei chains.json. Dies sind Chains, die einen Block-Explorer mit denselben APIs wie Etherscan haben. Wenn Sie weitere Blockchain-Explorer hinzufügen möchten, fügen Sie sie der Datei chains.json hinzu, testen Sie sie und erstellen Sie einen Pull-Request!

  • Ethereum Mainnet
  • Ropsten
  • Rinkeby
  • Goerli
  • Optimism
  • Cronos
  • Kovan
  • BSC
  • Huobi ECO
  • Polygon
  • Fantom
  • Arbitrum
  • Sepolia
  • Aurora
  • Avalanche

Beispiele

Weitere Beispiele, einschließlich Proxy- und Multicall-Aufrufen, finden Sie in der Datei EXAMPLES.md

eth_call:

Roh: image

Dekodiert: image

eth_sendRawTransaction (Uniswap-v2-Test):

root@kitploit:~
{
    "method": "eth_sendRawTransaction", 
    "params": [
        "0x02f9015b820539808459682f00850df8475800830493e0947a250d5630b4cf539739df2c5dacb4c659f2488d880de0b6b3a7640000b8e47ff36ab500000000000000000000000000000000000000000000009e0950598867d8000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000002105eaa660ff62b14a5e093fc348e13ab63af2e600000000000000000000000000000000000000000000000000000000623b16570000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000006b175474e89094c44da98b954eedeac495271d0fc001a005cfdf9ff11dea2d3e8781cb6ba140ae6e86a0922bfa75938b6f2456f513e24ca057f02b3f7125edb59e22651d503bc296153860e3843f9d495ad21d898c8e20c3"
    ], 
    "id": 4700418092893, 
    "jsonrpc": "2.0"
}

Dekodiert:

root@kitploit:~
[
  {
    "chain_id": 1337, 
    "access_list": [], 
    "nonce": 0, 
    "r": 2628844986784880378434698689940765181553490914879903463877191830852582236748, 
    "s": 39775559607776431912363889945449043629789293388076288013264795388376358199491, 
    "max_priority_fee_per_gas": 1500000000, 
    "gas": 300000, 
    "max_fee_per_gas": 60000000000, 
    "from": "0x2105Eaa660ff62b14a5e093fc348e13ab63AF2E6", 
    "y_parity": 1, 
    "to": "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D", 
    "value": 1000000000000000000,
    "data": "0x7ff36ab500000000000000000000000000000000000000000000009e0950598867d8000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000002105eaa660ff62b14a5e093fc348e13ab63af2e600000000000000000000000000000000000000000000000000000000623b16570000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000006b175474e89094c44da98b954eedeac495271d0f", 
    "decoded_function": {
      "args": {
        "amountOutMin": 2915256698432979992576, 
        "path": [
          "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", 
          "0x6B175474E89094C44Da98b954EedeAC495271d0F"
        ], 
        "to": "0x2105Eaa660ff62b14a5e093fc348e13ab63AF2E6", 
        "deadline": 1648039511
      }, 
      "function": "swapExactETHForTokens(uint256,address[],address,uint256)", 
      "to": "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D",
      "abi": {
        "outputs": [
          {
            "internalType": "uint256[]", 
            "type": "uint256[]", 
            "name": "amounts"
          }
        ], 
        "inputs": [
          {
            "internalType": "uint256", 
            "type": "uint256", 
            "name": "amountOutMin"
          }, 
          {
            "internalType": "address[]", 
            "type": "address[]", 
            "name": "path"
          }, 
          {
            "internalType": "address", 
            "type": "address", 
            "name": "to"
          }, 
          {
            "internalType": "uint256", 
            "type": "uint256", 
            "name": "deadline"
          }
        ], 
        "stateMutability": "payable", 
        "type": "function", 
        "name": "swapExactETHForTokens"
      }
    }
  }
]

So funktioniert es

eth_chainId-JSON-RPC-Anfrage an den verwendeten Node, um zu erkennen, an welcher Chain wir arbeiten, und abhängig von der Chain wird eine Block-Explorer-API ausgewählt, indem in der Datei chains.json gesucht wird.

Als Anwendungsbeispiel: Zum Dekodieren von Funktionsaufrufen benötigen wir die ABI (Application Binary Interface) des Vertrags, die alle Funktionen enthält, die im Vertrag aufgerufen werden können, sowie deren Eingaben und Ausgaben. Derzeit funktioniert es mit verifizierten Verträgen im Block-Explorer oder durch manuelles Hinzufügen der ABI. In zukünftigen Versionen werden wir die Möglichkeit untersuchen, eine ABI automatisch zu generieren, indem die Funktions-Selektoren in öffentlichen Datenbanken durchsucht werden.

Das folgende "Fluss"-Diagramm zeigt vereinfacht den Prozess, den die eth_decoder-Bibliothek beim Dekodieren von eth_call-JSON-RPC-Aufrufen durchläuft:

image

Bekannte Einschränkungen

  • Das Dekodieren von Roh-Transaktionen unter Windows kann aufgrund von Bibliothekskompatibilität eingeschränkte Funktionalität aufweisen
Tool herunterladen