Crawling
El “crawling” también conocido como “spidering” es una técnica
que se utiliza en las fases de una auditoria web cuando se realiza el análisis
de información, esta técnica puede construir un mapa del sitio web descargando
información de forma masiva para posteriormente indexar el contenido de un
conjunto de páginas web no estructuradas, se puede decir que se “araña” el
sitio web objetivo.
A medida que el “crawler” visita URL, identifica todos los
hipervínculos en la página y los agrega a la lista de URL para visitar. Cuando
el “crawler” está archivando sitios web, copia y guarda la información a medida
que avanza. El archivo se conoce como “repositorio” y está diseñado para
almacenar y administrar la colección de páginas web. Un repositorio es similar
a una base de datos.
Para la ejecución de esta técnica se mencionan algunas herramientas como:
Black widow
Website Ripper Copier
Burp Suite
DirBuster
WFuzz
Black widow
Website Ripper Copier
Burp Suite
DirBuster
WFuzz
Fuentes de información:
Fuzzing
Son técnicas capaces
de generar y enviar datos secuenciales o aleatorios a una o varias áreas o
puntos de una aplicación con la que es posible evaluarlas en búsqueda de
vulnerabilidades, como por ejemplo, aquellas que utilizan la red para
conectarse con otros módulos y que pueden ser explotables de forma remota.
Estas técnicas proporcionan cobertura a fallos de datos y regiones de código no testados, gracias a la combinación del poder de la aleatoriedad y ataques heurísticos entre otros.
Estas técnicas proporcionan cobertura a fallos de datos y regiones de código no testados, gracias a la combinación del poder de la aleatoriedad y ataques heurísticos entre otros.
Las pruebas semiautomáticas o automáticas que utilizan estas técnicas se llaman fuzzers. En general, la mayoría de los fuzzers intentan encontrar
vulnerabilidades del tipo buffer overflow, integer overflow, format string o condiciones de carrera, aunque también abarcan otros tipos de errores, como
inyecciones sql.
El funcionamiento de los fuzzers suele realizarse en las siguientes etapas:
- Obtención de datos: se obtendrán los datos a enviar de una lista estática almacenada en archivos o en el propio código fuente, o se generara en el mismo momento según las configuraciones efectuadas. Este proceso se puede realizar únicamente al inicio de la sesión o justo antes de cada envío.
- Envío de datos: una vez se dispone de la información que se desea enviar a la aplicación objetivo, se realizará el proceso eligiendo los mecanismos de entradas que pueden ser a través de un archivo y, en otros casos, las entradas pueden ser a través de la interacción del usuario.
- Análisis: después de realizado el envío, solo quedará esperar los resultados del fuzzing. Su función principal es la búsqueda de errores y en el impacto que estos pueden tener sobre el propio sistema de prueba. A partir de los errores es posible determinar cuál de esos errores son críticos y pueden ser explotados.
Técnicas de Fuzzing
Generación: se deben crear los datos antes de enviarlos, pudiendo descubrir fallos que el otro método obviaba. Normalmente, los datos obtenidos también
se sustituirán en una entrada válida del objetivo. Dependiendo de la forma de generar los datos se encuentran otros dos
subgrupos:
- Los recursivos, que se obtienen de la iteración sobre un alfabeto dado o de la repetición de un mismo carácter, como son:
Permutación: teniendo en cuenta, por ejemplo, el alfabeto hexadecimal “0,1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F” y buscando datos de seis caracteres para sustituir de la forma siguiente:
Repetición: se usa generalmente para la búsqueda de fallos del tipo buffer overflow. Se suele usar un incremento en cada repetición para no alargar el proceso inútilmente
- El otro subgrupo es el que hace uso de la sustitución, que se centrará en reemplazar cierta parte de una entrada válida por los elementos de un vector de fuzzing. Algunos casos son:
Integer overflow: ocurre cuando un programa recibe en una entrada un número que está fuera del rango que es capaz de manejar: un cero, un número negativo, un número mayor o menor que el rango actual, o uno con diferente tipo numérico (decimal en vez de entero). Este agujero puede derivar en un ataque de buffer overflow
Format string: este tipo de ataques se producen cuando se introducen ciertos elementos para proporcionar formato a las cadenas de texto y no existe un mínimo control de seguridad. De esta forma, se puede conseguir una denegación de servicio o incluso la ejecución de código arbitrario en el sistema.
Herramientas para la ejecución de fuzzing :
PowerFuzzer
JBroFuzz
WebScarabat
Wapiti
Socket Fuzzer
Fuentes de Información:
No hay comentarios.:
Publicar un comentario