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
RegEx-DoS — 👮 👊 Escáner de Denegación de Servicio por RegEx (ReDos) | Kitploit
Herramientas/GitHubGitHub/jagracey/regex-dos
Herramientas DefensivasEscáneres de VulnerabilidadesAnálisis Estático de Código (SAST)Análisis de VulnerabilidadesDevSecOps
GitHubjagracey/regex-dos

RegEx-DoS

👮 👊 Escáner de Denegación de Servicio por RegEx (ReDos)

Ver Repositorio
18219hace 8 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
Sitio web

👮 👊 RegEx Denial of Service (ReDos) Scanner

Ayudándote a encontrar Expresiones Regulares susceptibles a Ataques de Denegación de Servicio.

Por favor, lee las guías de contribución antes de contribuir.



Una captura de pantalla del escaneo de ReDoS en acción.

¿Qué es la Denegación de Servicio por Expresiones Regulares?

Wikipedia y OSWAP tienen explicaciones decentes. Básicamente, ciertas expresiones regulares pueden tardar mucho tiempo para ciertas entradas. Aquí tienes un ejemplo real.

root@kitploit:~
>   console.time('benchmark');
    /^(([a-z])+.)+[A-Z](https://github.com/jagracey/regex-dos/blob/HEAD/%5Ba-z%5D)+$/.test('aaaaaaaaaaaaaaa');
    console.timeEnd('benchmark');
< benchmark: 0.060ms

>   console.time('benchmark');
    /^(([a-z])+.)+[A-Z](https://github.com/jagracey/regex-dos/blob/HEAD/%5Ba-z%5D)+$/.test('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');
    console.timeEnd('benchmark');
< benchmark: 308.656ms

>   console.time('benchmark');
    /^(([a-z])+.)+[A-Z](https://github.com/jagracey/regex-dos/blob/HEAD/%5Ba-z%5D)+$/.test('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');
    console.timeEnd('benchmark');
< benchmark: 3179.829ms


>   console.time('benchmark');
    /^(([a-z])+.)+[A-Z](https://github.com/jagracey/regex-dos/blob/HEAD/%5Ba-z%5D)+$/.test('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');
    console.timeEnd('benchmark');
< benchmark: 22159.769ms  // 22 seconds

>   // You can guess what would happen if you test the RegEx with 100 repeating characters.
    console.time('benchmark');
    /^(([a-z])+.)+[A-Z](https://github.com/jagracey/regex-dos/blob/HEAD/%5Ba-z%5D)+$/.test( 'a'.repeat(100) );
    console.timeEnd('benchmark');
< benchmark: lol.....no.


# Instalando ReDoS

Como siempre, instala con NPM.

root@kitploit:~
npm install redos

Puedes ejecutar redos en la CLI:

root@kitploit:~
# Use "Find" to run Regex-DoS for any set of JS files you want.
find . -name "*.js" -not -path "./node_modules/*" -exec redos {} \;

O para ejecutarlo como módulo de node:

root@kitploit:~
var redos = require('redos');

// Using a Callback
redos(" 'aaaa'.split(/a+b?c*/g); ", function(regexNodes){
  console.log( regexNodes.results() );
};


// Or Without a Callback
redos(" 'aaaa'.split(/a+b?c*/g); ").results();


// Or With Better Content to Parse
const fs      = require('fs');
const content = fs.readFileSync('./foobar.js'); // <--- Your own file Here.
redos( content ).results();


Pruebas

¿Próximamente?



Contribuyendo

Consulta la guía de contribución para obtener detalles sobre cómo contribuir. Probablemente sea lo que esperas.

Código de Conducta

Consulta el Código de Conducta para más detalles. Básicamente se reduce a:

Con el interés de fomentar un entorno abierto y acogedor, nosotros, como contribuyentes y mantenedores, nos comprometemos a hacer de la participación en nuestro proyecto y nuestra comunidad una experiencia libre de acoso para todos, independientemente de la edad, la complexión física, la discapacidad, la etnia, la identidad y expresión de género, el nivel de experiencia, la nacionalidad, la apariencia personal, la raza, la religión o la identidad y orientación sexual.

Licencia

La Licencia MIT (MIT)

Copyright (c) 2016 John Gracey

Se concede permiso, de forma gratuita, a cualquier persona que obtenga una copia de este software y de los archivos de documentación asociados (el "Software"), para tratar con el Software sin restricción, incluidos, sin limitación, los derechos de uso, copia, modificación, fusión, publicación, distribución, sublicencia y/o venta de copias del Software, y para permitir a las personas a las que se les proporcione el Software, hacer lo mismo, sujeto a las siguientes condiciones:

El aviso de copyright anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.

EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO NO LIMITADO A LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN FIN PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DEL COPYRIGHT SERÁN RESPONSABLES DE CUALQUIER RECLAMO, DAÑOS U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O DE OTRA MANERA, QUE SURJA DE, FUERA DE O EN CONEXIÓN CON EL SOFTWARE O EL USO U OTROS ACUERDOS EN EL SOFTWARE.

Descargar herramienta