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
umberto — Biblioteca y CLI para mutar datos estructurados (JSON, XML, X.509) para admitir fuzzing basado en gramáticas, con múltiples estrategias de mutación e integración con Radamsa. | Kitploit
Herramientas/GitHubGitHub/trailofbits/umberto
Utilidades de Propósito GeneralAnálisis de VulnerabilidadesAnálisis Dinámico de Código (DAST)FuzzingArchived
GitHubtrailofbits/umberto

umberto

Biblioteca y CLI para mutar datos estructurados (JSON, XML, X.509) para admitir fuzzing basado en gramáticas, con múltiples estrategias de mutación e integración con Radamsa.

Ver Repositorio
314hace 6 añosRevisado 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

Umberto

Umberto es una biblioteca diseñada para mutar datos estructurados genéricos (p. ej., JSON, XML, X.509) y una aplicación de línea de comandos que envuelve esta funcionalidad. Puede aplicar una variedad de mutaciones, sintetizar valores totalmente nuevos y aplicar mutadores existentes (p. ej., Radamsa) a componentes de la estructura. Si intentas realizar fuzzing basado en gramáticas, puede resultarte muy útil. Probablemente sea más fácil de entender con un ejemplo:

root@kitploit:~
echo -n "{\"a\": 1, \"b\": 2, \"c\": \"test\"}" | umberto-mutate json knuth all

    {"a":2,"c":"tesb","t":1}

echo -n "{\"a\": 1, \"b\": 2, \"c\": \"test\"}" | umberto-mutate json newvals nums

    {"a":-2.8e-20,"b":-40000,"c":"test"}

echo -n "{\"a\": 1, \"b\": 2, \"c\": \"test\"}" | umberto-mutate json radamsa strings

    {"c\u0008^\u001f":"󠀨teï»â¨¿st","„1•31•31•31•31•31•31•31•3â":1,"ô ó –›ó €¶Db":2}

echo -n "{\"a\": 1, \"b\": 2, \"c\": \"test\"}" | umberto-mutate string replacement all
    
    :"c2:tb{ :"{c"}t"as }c"e": "2

Instalación

Umberto utiliza stack. Instala stack, clona este repositorio y luego ejecuta stack build && stack install. Si quieres usar el fuzzer Radamsa, también tendrás que instalarlo por separado.

Uso de la línea de comandos

Umberto proporciona un ejecutable simple, umberto-mutate, que envuelve la mayor parte de su funcionalidad. El uso típico es el siguiente:

echo -n mydata | umberto-mutate FORMAT MUTATOR TARGET

FORMAT puede ser cualquiera de los siguientes:

  • json

  • string (o esencialmente "sin formato")

  • xml (relativamente poco probado)

  • der (X.509 DER, relativamente poco probado)

MUTATOR puede ser cualquiera de los siguientes:

  • knuth: baraja Knuth aplicada a los valores seleccionados

  • replacement: baraja por reemplazo aplicada a los valores seleccionados

  • newvals: sintetiza nuevos valores seleccionados en lugar de los antiguos

  • radamsa: invoca radamsa externamente para la mutación (solo funciona con cadenas)

TARGET puede ser cualquiera de los siguientes:

  • strings: tipos de cadena

  • nums: tipos numéricos

  • all: todos los tipos

Uso de la biblioteca

La mayor parte de la funcionalidad de Umberto está disponible en lib/Umberto.hs. Los mutadores que hacen uso del polimorfismo de typeclasses requieren cierto uso de Template Haskell para violar la suposición de mundo abierto. Esto está disponible en Umberto.TH, pero solo debe usarse en código ejecutable, nunca en bibliotecas.

Descargar herramienta