Web5: Inyección SQL: algunas técnicas para evitar los mecanismos de filtrado

1. Truncar el contenido de la consulta.

En caso de que desee ignorar los scripts en la consulta. Por ejemplo, para el procesamiento siguiente, la consulta requiere la condición active=1 pero podemos comentar (--, -- -, -+, #, /*, /**/, // , ;%00…) y ignoralo. Al minar, a menudo no sabemos qué hace el contenido restante de la consulta, por lo que usar comentarios en este caso es muy efectivo.

Web5: Inyección SQL: algunas técnicas para evitar los mecanismos de filtrado

Después de comentar, nuestra consulta se convierte en:

Web5: Inyección SQL: algunas técnicas para evitar los mecanismos de filtrado

2. Omitir el filtrado de palabras clave

a. Comentarios en línea

Los comentarios en línea se utilizan de forma muy eficaz para evitar el filtrado de espacios en blanco. Puede utilizar los siguientes caracteres para omitir el filtrado de espacios en blanco: /**/, %20, %09, %0a, %0b, %0c, %0d, %a0). Por ejemplo:

Web5: Inyección SQL: algunas técnicas para evitar los mecanismos de filtrado

O omita el filtrado de palabras clave (disponible con MySql). En el siguiente ejemplo, las palabras clave unión y contraseña están en la lista negra, por lo que han sido bloqueadas. Podemos evitarlo de la siguiente manera:

Web5: Inyección SQL: algunas técnicas para evitar los mecanismos de filtrado

b. Reemplazar palabras clave

Cuando explotamos la inyección SQL, a menudo utilizamos palabras clave como: unión, selección, esquema_información... En muchos casos, los programadores simplemente reemplazan esas palabras clave:

Web5: Inyección SQL: algunas técnicas para evitar los mecanismos de filtrado

Podemos ver fácilmente que falta el código de procesamiento anterior. Si se trata simplemente de una coincidencia de patrones, el bypass es extremadamente simple. Apliquemos la distinción entre mayúsculas y minúsculas, donde las letras mayúsculas y minúsculas se interpretan de manera diferente.

Ahora, en lugar de utilizar la palabra clave:

select, union…

Usaremos:

SeLEcT, UniOn…

La base de esta omisión es que los sistemas de gestión de bases de datos no distinguen entre palabras clave de caso y caso.

En algunos casos, la aplicación web filtrará total o parcialmente determinadas palabras clave (unión, selección...). Pasaremos por alto de la siguiente manera:

id=1+uniunionon+SeLselectecT+1,2,3-- -

Después de que la aplicación web filtre la unión y la selección, nos quedará la consulta correcta de la siguiente manera:

id=1+union+SeLecT+1,2,3-- -

C. Codificación de caracteres

Podemos evitar cuando WAF (Web Application Firewall) bloquea palabras clave codificándolas. Muchas aplicaciones WAF solo decodificarán la consulta una vez y filtrarán las palabras clave en la lista negra, luego codificaremos la solicitud dos veces para poder omitirla en este caso.

Web5: Inyección SQL: algunas técnicas para evitar los mecanismos de filtrado

3. Evite los bloques de comillas simples y dobles

- Veamos un ejemplo antes de conocer específicamente este bypass.

Web5: Inyección SQL: algunas técnicas para evitar los mecanismos de filtrado

En este escenario, tenemos una tabla en la base de datos llamada usuarios. El siguiente trabajo es conocer el nombre de la columna en la tabla para obtener su información. Como en la consulta anterior, utilizamos la condición: table_name='usuarios'. Pero si WAF bloquea las comillas simples (') y las comillas dobles ("), ya no podremos usar 'usuarios' o "usuarios". Entonces, ¿cómo resolver este problema? El sistema de base de datos incorporado nos brinda una función que Resuelve muy bien este problema, que es la función CHAR( ) (para Oracle es CHR()). Por ejemplo, en la consulta anterior la omitiremos mediante:

Web5: Inyección SQL: algunas técnicas para evitar los mecanismos de filtradoWeb5: Inyección SQL: algunas técnicas para evitar los mecanismos de filtrado

Los programadores de PHP están muy familiarizados con la función addlashes(). La función addlashes() tiene el efecto de agregar antes caracteres especiales como comillas simples ('), comillas dobles ("), barra invertida (\), carácter NUL (byte nulo) "\" para ayudar al sistema de administración de bases de datos. ¿No hay dificultad ni confusión al manejar cadenas que contienen esos caracteres? Por lo tanto, cuando queremos inyectar en la consulta de acuerdo con el script: nombre='algúnNombre' o '1'='1'-- Los resultados ya no son los que esperábamos.

Sin embargo, existe una técnica para omitir la función addlashes() para inyectar caracteres de comillas simples ('). Esta técnica ha sido pública durante bastante tiempo e implementarla es bastante difícil porque está ligada al estilo de codificación aplicado al sitio web.

4. Omita el error "mezcla ilegal de intercalación para la operación UNION"

En algunos sistemas de gestión (comúnmente encontrados en MySql), cuando las bases de datos y tablas se han configurado para intercalación, al utilizar la palabra clave UNION, se informará el error "mezcla ilegal de intercalación para la operación UNION". La configuración de la intercalación puede deberse a la intención del diseñador de la base de datos o a la configuración predeterminada de MySql. En caso de utilizar unión, debemos asegurarnos de que la condición de selección de valor en cada campo debe tener definido el tipo de código correspondiente. En mi opinión, este error es bastante común, especialmente para los CMS que ejecutan Apache MySql. Las personas pueden obtener más información en: http://bugs.mysql.com/bug.php?id=57926.
En este caso podemos utilizar formas de convertir al tipo de codificación apropiado.

Por ejemplo en el siguiente caso:

Web5: Inyección SQL: algunas técnicas para evitar los mecanismos de filtrado

En la consulta anterior, si la columna 1 tiene la intercalación establecida en Unicode-UTF8 o _latin1, por ejemplo, lo que se seleccione de la columna 2 deberá convertirse al código correspondiente. Podemos forzar el estilo de la siguiente manera:

Web5: Inyección SQL: algunas técnicas para evitar los mecanismos de filtrado

Vemos un inconveniente en este método de omisión: tenemos que saber que el código intercalado es _latin1. En mi opinión, una mejor manera de evitarlo es utilizar las funciones de codificación y decodificación hexadecimal y no hexadecimal.

Web5: Inyección SQL: algunas técnicas para evitar los mecanismos de filtrado

Hay muchas otras funciones que se pueden utilizar en lugar de hex y unhex.

Dejar un comentario

Cómo eliminar el aviso de solicitud de derechos de autor en la esquina derecha de la pantalla en Windows 10

Cómo eliminar el aviso de solicitud de derechos de autor en la esquina derecha de la pantalla en Windows 10

¿Ves una notificación de activación de Windows 10 en la esquina derecha de la pantalla? Este artículo le guiará sobre cómo eliminar el aviso de solicitud de derechos de autor en Windows 10.

Instrucciones de AZ sobre cómo instalar Windows 10 compilación 14393.222

Instrucciones de AZ sobre cómo instalar Windows 10 compilación 14393.222

Recientemente, Microsoft lanzó la última actualización acumulativa para usuarios de PC con Windows 10 llamada Build 14393.222. Esta actualización lanzada para Windows 10 corrige principalmente errores basados ​​en los comentarios de los usuarios y mejora la experiencia de rendimiento del sistema operativo.

Proteja su red informática con Bastion host en solo 3 pasos

Proteja su red informática con Bastion host en solo 3 pasos

¿Tiene computadoras en su red local que necesitan acceso externo? Usar un host bastión como guardián de su red puede ser una buena solución.

3 formas de borrar rápidamente todos los registros de eventos en Windows 10

3 formas de borrar rápidamente todos los registros de eventos en Windows 10

A veces es posible que necesites eliminar todos los registros de eventos antiguos a la vez. En esta guía, Quantrimang.com le mostrará 3 formas de eliminar rápidamente todos los registros de eventos en el Visor de eventos de Windows 10.

Cómo crear una tecla de Windows si tu teclado no está disponible

Cómo crear una tecla de Windows si tu teclado no está disponible

Si prefiere usar un teclado clásico antiguo, como el IBM Modelo M, que no incluye una tecla física de Windows, existe un método sencillo para agregar más, tomando prestada una tecla que no usa con frecuencia.

Cómo crear un modo de fondo transparente en Windows 10

Cómo crear un modo de fondo transparente en Windows 10

WindowTop es una herramienta que tiene la capacidad de atenuar todas las ventanas de aplicaciones y programas que se ejecutan en computadoras con Windows 10. O puede usar una interfaz de fondo oscuro en Windows.

Los métodos de IP falsos te ayudan a acceder de forma anónima

Los métodos de IP falsos te ayudan a acceder de forma anónima

En muchos artículos anteriores hemos mencionado que permanecer anónimo en línea es extremadamente importante. Cada año se filtra información privada, lo que hace que la seguridad en línea sea cada vez más necesaria. Esa es también la razón por la que deberíamos utilizar direcciones IP virtuales. ¡A continuación, aprenderemos sobre métodos para crear IP falsas!

Cómo desactivar la barra de idioma en la barra de tareas de Windows 8

Cómo desactivar la barra de idioma en la barra de tareas de Windows 8

La barra de idioma en Windows 8 es una barra de herramientas de idioma en miniatura diseñada para mostrarse automáticamente en la pantalla del escritorio. Sin embargo, mucha gente quiere ocultar esta barra de idioma en la barra de tareas.

Consejos para optimizar la velocidad de conexión a Internet de Linksys

Consejos para optimizar la velocidad de conexión a Internet de Linksys

Maximizar la velocidad de Internet es esencial para optimizar su conexión de red. Podrás tener una óptima experiencia de entretenimiento y trabajo utilizando computadoras, televisores con acceso a Internet, consolas de juegos, etc.

Cómo configurar WEP, WPA, WPA2 para el enrutador Linksys

Cómo configurar WEP, WPA, WPA2 para el enrutador Linksys

La conectividad inalámbrica es una necesidad hoy en día y, por eso, la seguridad inalámbrica es esencial para garantizar la seguridad en su red interna.