Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
web3-decoder | Kitploit
Herramientas/GitHubGitHub/nccgroup/web3-decoder
Análisis de VulnerabilidadesIngeniería InversaRecopilación de InformaciónSeguridad WebPruebas de PenetraciónSeguridad de APIs
GitHubnccgroup/web3-decoder

web3-decoder

Ver Repositorio
11518hace 2 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Web3 Decoder

Web3 Decoder es una extensión de Burp Suite que ayuda a analizar qué está sucediendo con las operaciones que involucran contratos inteligentes de web3. Se trata principalmente de llamadas JSON-RPC a nodos de Ethereum y a nodos de otras redes compatibles (como Polygon, Arbitrum, BSC...).

Descarga e instalación

Descarga el JAR más reciente de la extensión — este enlace siempre sirve la versión más nueva:

⬇ web3-decoder.jar (última versión)

Las versiones anteriores están en la página de Releases.

Luego cárgala en Burp Suite:

  1. Ve a Extensions → Installed → Add.
  2. Configura Extension type como Java y selecciona el web3-decoder.jar descargado.
  3. Haz clic en Next — la pestaña Web3 y las pestañas de editor Web3 Request/Web3 Response aparecen cuando se carga.

Requiere una versión de Burp que incluya JRE 21 (versiones actuales de Burp Suite). El JAR es autocontenido: todas las dependencias (web3j, etc.) están incluidas.

Compilación desde el código fuente

root@kitploit:~
./gradlew jar

El JAR de la extensión siempre se escribe en una ruta constante — web3-decoder/build/libs/web3-decoder.jar — independientemente de la versión, por lo que puedes apuntar Burp hacia él una vez y dejar que se recargue automáticamente en las reconstrucciones. El proceso de publicación está documentado en docs/RELEASING.md.

Capturas de pantalla

Así es como se ven nuestras pestañas de editor Web3 mejoradas después de decodificar correctamente tus solicitudes y respuestas JSON-RPC:

Solicitudes y respuestas Web3 decodificadas

Debajo, la pestaña Web3 rediseñada, con todos los ajustes, los ABIs detectados, ¡y mucho más! (¡Gracias, Claude Design!)

Pestaña Web3

Documentación

La documentación detallada se encuentra en la carpeta docs/:

  • Arquitectura — capas, componentes y los flujos clave de decodificación/codificación (con diagramas).
  • Estructura del proyecto — organización de directorios y responsabilidades paquete por paquete.
  • Stack tecnológico — dependencias, compilación/empaquetado, runtime y modo CLI.
  • Características — catálogo completo de capacidades con referencias de implementación.

Claves de API de los exploradores de bloques

La mayoría de los exploradores de bloques compatibles, como etherscan.io, requieren una clave de API para permitir más de 1 solicitud cada 5 segundos.

La nueva interfaz te permite gestionar las cadenas, los exploradores de bloques y las claves de API.

Añadir manualmente el ABI de un contrato

La extensión almacena en caché los ABIs descargados de los exploradores de bloques como etherscan. También puedes añadirlos directamente desde la pestaña Web3, obteniéndolos automáticamente del explorador de bloques, o añadiéndolos manualmente.

Funcionalidades implementadas

  • Integración con Burp
    • Pestaña de editor Web3 Request para solicitudes JSON-RPC (oculta en tráfico sin eth_call / eth_sendRawTransaction).
    • Pestaña de editor Web3 Response para las respuestas JSON-RPC correspondientes.
    • Pestaña Web3 dedicada en la suite con herramientas de cadena/ABI/calldata.
    • Filas del historial de proxy anotadas con la firma de la función decodificada en su nota (decodificadas en un hilo aparte, persistidas en la fila del historial en vivo).
  • Experiencia del editor decodificado
    • Ambas pestañas de editor incluyen una vista de árbol estructurada por defecto, con la vista JSON a un clic de distancia: el JSON sigue siendo la fuente de verdad para la recodificación.
    • La vista JSON conserva el resaltado sintáctico + semántico, los números de línea, la coincidencia de corchetes, la validez en tiempo real y una barra de búsqueda.
  • Decodificación de solicitudes JSON-RPC
    • Decodifica el calldata de eth_call en function + args tipados.
    • Admite cargas útiles JSON-RPC de solicitud única y por lotes.
    • Para cargas útiles por lotes, cada elemento se reporta con un estado (decoded, skipped, ) y el motivo cuando se omite o falla.

Cadenas compatibles hasta ahora

La lista completa y actual de cadenas incluidas se encuentra en web3-decoder/src/main/resources/chains.json — la extensión ahora incluye el conjunto multicadena de Etherscan v2 (Ethereum, Sepolia, BNB Smart Chain, Polygon, Base, Arbitrum, Linea, Blast, Optimism, Avalanche, Gnosis, Scroll, Taiko, Berachain y muchas más, incluidos sus testnets). La interfaz también te permite añadir tus propias cadenas en tiempo de ejecución: cualquier cadena cuyo explorador de bloques exponga APIs de estilo Etherscan funcionará. Consulta Características para obtener detalles sobre la gestión de cadenas (incluida la migración de chain IDs obsoletos).

Cómo funciona

Se envía una solicitud JSON-RPC eth_chainId al nodo en uso para detectar en qué cadena estamos trabajando y, según la cadena, se selecciona una API de explorador de bloques buscando en el archivo chains.json.

Para decodificar llamadas a funciones necesitamos el ABI (Application Binary Interface) del contrato, que contiene todas las funciones que se pueden llamar en el contrato y sus entradas y salidas. La extensión resuelve los ABIs en este orden:

  1. ABI en caché para la cadena + dirección del contrato (persistencia con ámbito de proyecto de Burp).
  2. ABIs integrados para contratos conocidos (p. ej., Multicall3).
  3. Búsqueda en el explorador de bloques (API de estilo Etherscan) para contratos verificados.
  4. Pool de ABIs detectados — ABIs que el escáner pasivo ha extraído de los bundles de frontend de las dapps, indexados por selector de función de 4 bytes. Independiente de la cadena.
  5. Respaldo 4byte — búsqueda de selector → firma contra api.4byte.sourcify.dev, con un ABI sintético construido a partir de cualquier candidato coincidente.

Si no se puede determinar el chain ID (p. ej., el endpoint no responde a eth_chainId), los pasos con ámbito de cadena (1–3) se omiten y el decodificador aún intenta los pasos independientes de la cadena (4 y 5).

Servicios externos y fuentes de datos

Para decodificar el tráfico, la extensión se comunica con algunas fuentes externas. Son opcionales y puedes desactivarlas desde la pestaña Web3. Todas las solicitudes salientes se envían a través de la propia pila HTTP de Burp (api.http().sendRequest), por lo que respetan la configuración de proxy/TLS ascendente de Burp y aparecen en el tráfico de Burp.

Nota de privacidad: Las búsquedas de ABI envían la dirección del contrato al explorador de bloques configurado, y el respaldo 4byte envía el selector de función a api.4byte.sourcify.dev. Los ABIs descargados se almacenan en caché localmente para que los decodificados repetidos no vuelvan a consultar. La mayoría de los exploradores (p. ej., etherscan.io) necesitan una clave de API para más de ~1 solicitud / 5 segundos: gestiona las claves desde la pestaña Web3.

El detector pasivo de ABIs lee los cuerpos de las respuestas HTTP que Burp ya ha capturado y se ejecuta completamente en local: la detección en sí no genera tráfico.

Descargar herramienta
error
  • Decodificación de respuestas JSON-RPC
    • Decodifica result para solicitudes eth_call previamente decodificadas.
    • Admite respuestas únicas y por lotes, emparejando las entradas por id JSON-RPC (o por índice como respaldo).
  • Flujo de trabajo de recodificación y edición
    • Puedes editar los argumentos decodificados en el editor de solicitudes y escribirlos de vuelta como calldata codificado.
    • La herramienta independiente de calldata puede decodificar y recodificar fuera del historial de solicitudes.
  • Resolución y caché de ABIs
    • Prioridad de búsqueda de ABI: ABI en caché → ABI integrado → explorador de bloques (compatible con Etherscan) → pool detectado pasivamente → 4byte.
    • Los ABIs descargados se almacenan en caché automáticamente para decodificaciones futuras.
    • La fuente del ABI se registra (cache, builtin, etherscan, detected o 4byte) en la salida decodificada.
  • Detección pasiva de ABIs (nueva)
    • Un PassiveScanCheck de Burp escanea los cuerpos de las respuestas HTTP (normalmente bundles JS de dapps minificados) en busca de ABIs de Solidity y almacena todo lo que encuentra en un pool con ámbito de proyecto indexado por selector de función.
    • Gestiona tanto JSON estricto como la forma de literal de objeto JS que se encuentra en los bundles minificados, incluidos los atajos booleanos !0 / !1 emitidos por Terser/esbuild/Svelte.
    • Cuando la cadena existente caché → integrado → etherscan no acierta, el decodificador consulta el pool detectado antes de recurrir a 4byte. La salida decodificada se etiqueta con decodeSource: "detected".
    • Funciona incluso cuando no se puede determinar eth_chainId: el pool detectado y 4byte son independientes de la cadena, por lo que el decodificador aún los intenta en lugar de negarse directamente.
    • Cada nuevo ABI genera un issue informativo de Burp ("Solidity contract ABI detected") con la lista completa de métodos — cada función/evento/error con su firma canónica y selector de 4 bytes — y la URL donde se encontró el ABI.
  • Decodificación de respaldo 4byte
    • Si falla la búsqueda de ABI, se realiza una búsqueda del selector de función contra api.4byte.sourcify.dev.
    • Se generan definiciones de ABI sintéticas a partir de las firmas candidatas y se utilizan para los flujos de decodificación/recodificación.
  • Decodificación consciente de proxies
    • Detecta contratos de implementación para patrones de proxy delegado y decodifica contra el ABI de la implementación.
    • Detectores de proxy implementados: slot ERC1967 y slot legacy de ZeppelinOS/OpenZeppelin.
  • Decodificación recursiva de Multicall
    • Decodifica llamadas anidadas para las variantes comunes de Multicall: aggregate, tryAggregate, aggregate3, aggregate3Value, blockAndAggregate, tryBlockAndAggregate.
    • Decodifica recursivamente las llamadas anidadas con límite de profundidad y estado por nodo.
  • Interfaz de gestión de cadenas y exploradores
    • Añadir/editar/eliminar definiciones de cadena (chain ID, nombre, explorador).
    • Gestión de claves de API del explorador por cadena.
    • Soporte de clave de API compartida de la familia Etherscan con anulación por cadena.
    • Carga las cadenas por defecto desde chains.json y persiste las personalizaciones en las preferencias de Burp.
    • Incluye la migración de chain IDs obsoletos a reemplazos modernos (para configuraciones persistidas).
  • Interfaz de gestión de ABIs en caché
    • Añadir un ABI en caché manualmente (pegar JSON) u obtenerlo del explorador configurado.
    • Eliminar entradas de ABIs en caché.
    • Abrir ABIs en caché en el editor, validar el JSON y guardar las actualizaciones.
  • Interfaz de navegación de ABIs detectados (nueva)
    • Panel lateral bajo la pestaña Web3 que lista cada ABI que el escáner pasivo ha acumulado.
    • Cada fila muestra una huella corta, el número de funciones y la URL donde se vio el ABI por primera vez.
    • Haz clic en una fila para ver el JSON del ABI en modo solo lectura en el editor de ABI; elimina las entradas no deseadas del pool.
  • Panel de decodificación / recodificación de calldata
    • Decodifica calldata usando el contexto de chain ID + dirección del contrato.
    • Soporte opcional de URL RPC para la decodificación consciente de proxies en la herramienta independiente.
    • Muestra los detalles de decodificación multicall anidados cuando corresponde.
  • Decodificación de llamadas JSON-RPC eth_sendRawTransaction (y sus funciones internas)
  • ServicioEndpointUso
    Nodo JSON-RPC (el endpoint que ya está en tu tráfico)la URL RPC a través del proxyeth_chainId para detectar la cadena activa y eth_getStorageAt para leer los slots de implementación del proxy (ERC-1967 / ZeppelinOS legacy).
    Etherscan (multicadena v2)https://api.etherscan.io/v2/api?chainid=…Obtener ABIs de contratos verificados. Recurre al host de explorador legacy de la cadena (/api) cuando v2 no soporta esa cadena.
    Base de datos de firmas 4bytehttps://api.4byte.sourcify.devResolver un selector de función de 4 bytes desconocido en firmas candidatas cuando no hay ABI disponible (luego se construye un ABI sintético a partir de la coincidencia).