El arte de la prueba de fuzzing es una práctica esencial en la caja de herramientas de cualquier profesional de la ciberseguridad. Aunque la base de esta técnica, suministrar entradas aleatorias o «fuzz» a un sistema para identificar errores, es simple, las aplicaciones avanzadas de fuzzing pueden ser complejas y matizadas. En este artículo, exploraremos las técnicas avanzadas de fuzzing aplicadas al código JavaScript y a las URLs, utilizando las herramientas jsfuzz y wfuzz, respectivamente.
Fuzzing en JavaScript con jsfuzz
Paso 1: Configuración de jsfuzz
La instalación de jsfuzz se realiza a través de npm, utilizando el comando npm install -g jsfuzz
. Asegúrate de tener Node.js instalado en tu sistema antes de proceder.
Paso 2: Desarrollo de un harness avanzado
La implementación de un harness para jsfuzz debe ser más que una simple función; es necesario considerar diferentes estrategias para ejercer presión sobre las diversas partes del código objetivo. Por ejemplo, podrías crear un harness que explore las diferentes formas de interactuar con un objeto de tu código:
javascriptCopy code// harness.js
const MyObject = require('./MyObject');
module.exports = {
fuzz: function(data) {
let obj = new MyObject();
data = new Uint8Array(data);
let methodIndex = data[0] % 3;
let arg = data[1];
switch(methodIndex) {
case 0:
obj.method1(arg);
break;
case 1:
obj.method2(arg);
break;
case 2:
obj.method3(arg);
break;
}
}
};
En este ejemplo, el harness intenta llamar a tres métodos diferentes en un objeto con argumentos aleatorios. La variedad y la aleatoriedad son claves en el fuzzing eficaz.
Paso 3: Ejecución y análisis
Ejecuta jsfuzz en la línea de comandos, proporcionando la ubicación del código de prueba y los datos de prueba iniciales. Analiza los resultados con atención, no sólo buscando errores sino también observando comportamientos inesperados.
Fuzzing en URLs con wfuzz
Paso 1: Preparación de wfuzz
Puedes instalar wfuzz utilizando pip, el gestor de paquetes de Python. Usa el comando pip install wfuzz
.
Paso 2: Técnicas avanzadas de fuzzing
A continuación, te mostramos cómo utilizar wfuzz de manera más efectiva en el fuzzing de URLs. Puedes aplicar múltiples payloads y utilizar filtros y scripts personalizados para crear pruebas de fuzzing más eficientes. Aquí te mostramos un ejemplo avanzado de cómo usar wfuzz:
cssCopy codewfuzz -c -z file,wordlist1.txt -z file,wordlist2.txt --script=html --hc 404 http://example.com/FUZZ/FUZ2Z
En este ejemplo, utilizamos dos listas de palabras para aplicar más variaciones en las pruebas. --script=html
le dice a wfuzz que utilice un script personalizado (en este caso, un script que analiza HTML) para analizar las respuestas.
Consideraciones éticas y legales
A pesar de su utilidad, recuerda que el fuzzing no es una panacea. No detectará todas las vulnerabilidades y puede dar lugar a falsos positivos. Por lo tanto, deberías combinar el fuzzing con otras técnicas de prueba de seguridad.
Además, es crucial obtener el consentimiento antes de realizar pruebas de seguridad en sistemas ajenos. Participar en programas de recompensas por errores, o «bug bounty», puede ser una excelente manera de aplicar tus habilidades de fuzzing de forma ética y beneficiosa.

Fuzzing como Etapa en el Proceso de Integración y Entrega Continua (CI/CD)
Incorporar el fuzzing en el pipeline de Integración y Entrega Continua (CI/CD) puede fortalecer enormemente el proceso de desarrollo de software. Al hacerlo, se pueden detectar automáticamente las vulnerabilidades y errores de seguridad antes de que el código llegue a producción.
Considera el fuzzing como una etapa de pruebas automatizadas en tu pipeline de CI/CD. Después de las pruebas unitarias y de integración, pero antes de la entrega o despliegue, puedes ejecutar tus harness de fuzzing. Esto podría ser tan simple como un script de shell que ejecuta jsfuzz o wfuzz, o podría implicar el uso de una herramienta de CI/CD que integra las pruebas de fuzzing, como Jenkins con su plugin fuzzing.
Además, el fuzzing continuo también proporciona una retroalimentación útil para el proceso de desarrollo, permitiendo que los desarrolladores vean rápidamente si un cambio reciente ha introducido nuevas vulnerabilidades.
Al final, incorporar el fuzzing en tu pipeline de CI/CD permite un enfoque más proactivo hacia la seguridad, facilitando la detección temprana de vulnerabilidades y ayudando a mantener la integridad de tu código a medida que evoluciona y crece.
Read moreNavegando en el Mundo de las Métricas : KPIs, OKR, Hitos y Más Allá
Written by: thempra on 07/06/2023 @ 08:00
En el ámbito de la gestión de proyectos de desarrollo de software, los términos KPI (Indicadores Clave de Desempeño) y fechas de entrega se mencionan frecuentemente, a veces hasta el punto de la confusión. Ambos conceptos son fundamentales, pero sirven a propósitos diferentes y deben utilizarse en conjunto para el éxito del proyecto. Además de […]
Catogories: OtrosRead more
ATCNIA: Revolucionando la Validación de Contenido de las IA
Written by: thempra on 31/05/2023 @ 08:00
En la era digital actual, la autenticidad y la procedencia de los contenidos son cruciales. En un mundo donde las noticias falsas y la desinformación se propagan rápidamente, necesitamos una solución confiable para garantizar la autenticidad del contenido. Ahí es donde entra el proyecto de Autenticación y Trazabilidad de Contenido No Generado por IA (ATCNIA). […]
Catogories: OtrosRead more
Análisis de contenedores en el proceso de CI/CD
Written by: thempra on 12/04/2023 @ 21:16
El uso de contenedores en el desarrollo de aplicaciones ha experimentado un rápido crecimiento en los últimos años, gracias a la escalabilidad, portabilidad y eficiencia que ofrecen. Sin embargo, a medida que aumenta la adopción de contenedores, también lo hace la necesidad de abordar posibles problemas de seguridad y garantizar que las aplicaciones sean seguras […]
Catogories: OtrosRead more
Técnicas de fuzzing para mejorar la seguridad en aplicaciones web
Written by: thempra on 05/04/2023 @ 08:00
El fuzzing, también conocido como fuzz testing, es una técnica de pruebas de seguridad que implica el envío de entradas aleatorias o malformadas a una aplicación para identificar posibles vulnerabilidades y fallos en la misma. En aplicaciones web, el fuzzing es especialmente útil para descubrir problemas de seguridad relacionados con la validación de entradas y […]
Catogories: OtrosRead more
Más allá de los gráficos de Gantt, alternativas modernas para metodologías Agile
Written by: thempra on 30/03/2023 @ 08:00
Durante décadas, los gráficos de Gantt han sido una herramienta de gestión de proyectos ampliamente utilizada en diversos sectores. Sin embargo, en el mundo actual de desarrollo ágil y rápido, estos gráficos pueden resultar obsoletos y poco eficientes. En este artículo, analizaremos por qué los gráficos de Gantt están perdiendo terreno en el ámbito de […]
Catogories: OtrosRead more
Profundizando en el análisis dinámico de aplicaciones de seguridad (DAST): técnicas avanzadas y enfoques personalizados
Written by: thempra on 25/03/2023 @ 10:13
El análisis dinámico de aplicaciones de seguridad (DAST) es una metodología crucial en el ámbito de la seguridad de aplicaciones. DAST identifica vulnerabilidades en tiempo de ejecución mediante pruebas de intrusión en aplicaciones web y móviles. En este artículo, nos adentraremos en técnicas avanzadas y enfoques personalizados en el contexto de DAST, incluyendo el análisis […]
Catogories: OtrosRead more
Inteligencia artificial en Telegram
Written by: thempra on 26/12/2021 @ 12:53
Hemos oído mucho acerca de GPT-3, OpenAI y sus modelos entrenados para implementar tu propia AI de una forma rápida y pre-entrenada. Los resultados de sus demos son fascinantes, pero …. ¿son realmente así? ¿o están «preparados»? Pues planteando esa misma duda, he decidido hacer una implementacion para integrar tu usuario de Telegram con dicha […]
Catogories: AI, Python, TelegramRead more
CryptoTrading para novatos
Written by: thempra on 22/07/2016 @ 17:15
Tal y como os prometí en la charla de esta semana aquí os dejo la presentación para que podáis repasar lo aprendido en la sesión para iniciarse al trading. Espero que os resulte una ayuda, y podáis ir creciendo en esta linea de FinTech tan interesante. Si estáis interesado en el script de gestión para […]
Catogories: bitcoin, bolsa, crytotrading, fintech, Otros, tradingRead more
Comenzando con Radare2
Written by: thempra on 04/10/2014 @ 19:55
Esta semana hemos podido disfrutar de la cuarta edición del Congreso Navaja Negra, en el cual Pancake nos ha iniciado en el uso de Radare2, un Framework de reversing excepcional, con una potencia, rapidez y funcionalidades que no tiene nada que envidiar a otros comerciales existentes en el mercado. Hay que reconocer la complejidad del mismo, […]
Catogories: radare2, reversingRead more