¿Cuál es la mejor manera de probar un sitio web para la vulnerabilidad de inyección SQL?

Sí, si planea probar solo que el sitio web es vulnerable o no, entonces

1- SQLmap
2- Havij
3- SQLNinja

La mejor herramienta para verificar los identificadores de sitios web vulnerables o no. pero para hacerlo debe tener algunos conocimientos básicos de la inyección sql.

porque estas herramientas hacen lo mismo de forma automática que usted de forma manual.

Primero, quiero explicar el propósito de la inyección SQL basada en errores. No te preocupes, es muy simple.

RECUPERACIÓN DE DATOS DE LA BASE DE DATOS

Hoy en día, utilizamos principalmente la inyección de SQL para omitir el formulario de inicio de sesión u obtener acceso a un panel de administración o recuperar los datos. Cuando intentamos omitir el formulario de inicio de sesión, usamos BLIND SQL INJECTION. En este artículo, hablaré sobre la inyección SQL basada en errores.

Como su nombre indica, basado en error significa que todo se basa en los errores. En este ataque, escribiremos o enviaremos algo al servidor por URL y el servidor nos mostrará un error. Después de obtener el error, decidiremos quién será el próximo objetivo.

Primero, tenemos que encontrar el sitio web venerable basado en error SQL en Google. Vaya a Google y escriba lo siguiente:

inurl index.php? id =

inurl gallery.php id =

El siguiente objetivo es averiguar si nuestra página está hablando actualmente o si está conectada con la base de datos o no.

http://www.example.com/gallery.p…

Para encontrar esto, solo necesitamos poner una comilla simple después del número de identificación como este:

http://www.example.com/gallery.p… 6 ′

Si muestra un error y el error es un error de sintaxis SQL, entonces esta página está conectada con la base de datos y el sitio web también es vulnerable.

Lo que hace la búsqueda individual es, en realidad, la búsqueda individual rompe la consulta y la sintaxis de la consulta ha cambiado, o podríamos decir que se convirtió en la sintaxis incorrecta. Entonces, obtenemos el error Error de sintaxis SQL.

Ahora sabemos que el sitio web es vulnerable solo necesitamos encontrar todo el número de columnas. Nuevamente vamos a inyectar una consulta para obtener el error. Ahora, lo que hacemos es organizar todas las columnas en orden.

http://www.example.com/gallery.p… ordenado por 1

http://www.example.com/gallery.p… ordenado por 2

http://www.example.com/gallery.p… ordenado por 3

Haremos esto hasta que aparezca en las columnas desconocidas. Si muestra el error de columna desconocido en N, eso significa que tiene el número total de columnas N-1 porque muestra el contenido en orden por N-1.

Ahora vamos a averiguar qué columnas están conectadas a nuestra página URL actual para poder decir qué columnas son vulnerables. Técnicamente no es vulnerable. Simplemente está conectado a nuestra página URL actual.

http://www.example.com/gallery.p… union all select 1,2,3,4, N-1.

Nos muestra las columnas conectadas a la página actual porque solo podemos acceder a la base de datos por estas columnas. Muestra el número de las columnas. Si muestra 2,4, entonces 2 y 4 están conectados con nuestra página URL actual. El siguiente paso es encontrar la versión y la base de datos. Haremos esto usando cualquiera de los 2 o 4. Estamos usando 2 o 4 solo porque están conectados a la página actual.

http://www.example.com/gallery.p… union all select 1, version (), 3,4, N-1.

http://www.example.com/gallery.p… union all select 1, database (), 3,4, N-1.

Podemos encontrar otra información usando algunas cosas. Una cosa que toda persona debe tener en cuenta es: cuanta más información tenga, más poderoso será.

Si la versión de SQL es más de 5.0.0, significa que tiene el esquema. El esquema es como un índice de todas las bases de datos.

Ahora nuestro próximo paso es encontrar todos los nombres de las tablas. Para hacer esto, nuevamente inyectaremos una consulta.

http://www.example.com/gallery.p… union all select 1, group_concat (table_name), 3,4, N-1 form Information_schema.tables donde table_schema = database () –

Mostrará todos los nombres de tabla de table_schema.

Nuestro siguiente paso es encontrar todas las columnas. Use el valor char de MySQL de cualquiera de los nombres de tabla. Tome cualquier nombre de tabla y conviértalo usando la barra de hackeo en MySQL char y cópielo y péguelo en la consulta.

http://www.example.com/gallery.p… union all select 1, group_concat (column_name), 3,4, N-1 form Information_schema.columns donde table_name = mysqlchar–

Ahora que tenemos el nombre de las columnas, nuestro ataque final es obtener los datos porque tenemos el nombre de la tabla, el nombre de las columnas y el nombre de la base de datos. Table_name debería ser el mismo que usamos para mysqlchar para encontrar el nombre de las columnas.

http://www.example.com/gallery.p… union all select 1, group_concat (column_name, 0x0a), 3,4, N-1 form table_name

0x0a es el valor hexadecimal de comas (,). Separará los datos de la tabla en comas.

Espero que esta información lo ayude a tener más conocimiento en la inyección SQL basada en errores.

Gracias y Saludos cordiales

Usualmente uso la siguiente metodología para probar una inyección SQL
Pruebas automatizadas
1- SQLmap
2- Havij
3- SQLNinja

Intentaré probar la URL de destino con las herramientas anteriores. Para mí, considero que SQLMap es la mejor herramienta de prueba de inyección SQL. Creo que no es solo una herramienta para la inyección de SQL, sino que es un marco que se puede usar para probar cualquier tipo de inyecciones de SQL, lo difícil que fueron. Solo necesita saber cómo usarlo y conocer todas sus opciones.
Usaré Havij y SQLNinja solo para confirmar los hallazgos de SQLMap.
Si las herramientas verificaron la vulnerabilidad, entonces no necesito perder mi tiempo y esfuerzo en algo que pueda verificarse fácilmente.

Prueba manual
Si las herramientas anteriores no confirmaron que la URL de destino es vulnerable a la inyección de SQL. Primero me hago las siguientes preguntas
1- ¿por qué creo que esta URL es vulnerable?
2- ¿Esta página parece hablar con la base de datos en el backend?
3- ¿Cuál es el tipo de este DBMS?
4- ¿Cuál es el tipo de consulta? Insertar / Seleccionar / Eliminar / Actualizar?
5- ¿La consulta que estoy tratando de inyectar devuelve resultado en esta página u otra página o no devuelve ningún resultado?
6- ¿El informe de errores está habilitado en este servidor o no?
7- ¿Hay un WAF / Firewall o no?

Responder estas preguntas me ayuda mucho a comenzar mis pruebas.
El primer paso que hago en mi prueba manual es tratar de construir la consulta de mi lado. Intento construir la instrucción Seleccionar / Insertar / Actualizar / Eliminar. Luego trato de saber dónde está el punto de inyección y luego trato de validar mi hipótesis.
Si la consulta devuelve resultados, podría usar el método de inyección SQL basado en contenido. Si la consulta no devuelve resultados pero el error basado está habilitado, puedo usar el método de explotación de inyección SQL basado en error. Si la respuesta del servidor es binaria como Verdadero o Falso, entonces puedo intentar la explotación de inyección ciega. Si el servidor NO responde en absoluto para la consulta. Intentaré usar consultas con efectos secundarios o utilizar la inyección a ciegas basada en el tiempo.

Esta es, en resumen, la metodología que uso para detectar vulnerabilidades de inyección SQL. Espero que responda tu pregunta 🙂

Estoy en el trabajo, así que lo haré rápido. Hay algunas formas diferentes de hacerlo. Bueno, en realidad, primero, un descargo de responsabilidad. Esto es solo para fines informativos y si utiliza alguno de estos métodos o herramientas, supongo que está en un sitio web que le pertenece o para el que ha obtenido permiso. Ok, ahora con las molestias fuera del camino …

La primera es que puedes usar algo rápido y sucio, por ejemplo, Firefox tiene un par de buenos complementos que ofrecen esa capacidad. El primero es “HackBar” y el otro es “SQL Inject Me”. Ambos son divertidos de usar. El segundo es usar una herramienta algo cara que tiene esa opción. Los tres que vienen a la mente son Nexpose de Rapid7 (Mi favorito), GFI LanGuard y el tercero es Acunetix. Cada uno tiene sus pros y sus contras, pero todos cuestan dinero. Ahora que lo pienso, si voy a ofrecer los nombres de las herramientas pagas, debería contarles sobre las gratuitas, bueno LA gratuita (redoble …), Kali Linux. Cada herramienta bajo el sol necesita hacer todo (inyección SQL incluida). Debo mencionar que ninguna herramienta es una isla y generalmente es bueno usar al menos dos herramientas para hacer lo que haces \ U0001f608.

El tercer enfoque y, en mi opinión, el más importante para lograr cualquier cosa es el conocimiento del área temática. Si bien las herramientas automatizadas hacen que sea realmente fácil y rápido lograr lo que está buscando, no hay sustituto para comprender exactamente lo que sucede. Te hace más rápido, más efectivo y es divertido. Comienza por comprender cómo funciona SQL, sus debilidades inherentes y cómo usted y, por extensión, estas herramientas lo ayudan a evitar su uso previsto.

Mis notas…
-Disculpe cualquier error tipográfico (escrito en un iPhone)
contra la luz moribunda
-Toma responsabilidad en todo lo que haces
-Siempre se impresionante, excepto si puedes ser Batman. Sé Batman primero
-vivir reír y amar

Mejor

Kurt

Puede probar el sitio manualmente yendo al sitio y buscar formas de inyectar a través de parámetros o campos de entrada … o puede usar herramientas automatizadas como sqlmap, sqlninja, estas son herramientas excelentes y útiles, pero también hacen lo mismo.

More Interesting

¿Qué es el cerber?

¿Las contraseñas asociadas con las cuentas en línea son visibles para el propietario o los empleados del sitio web o están cifradas y protegidas de la vista?

¿Es más fácil piratear Gmail que Facebook?

Gran cortafuegos de China (GFW): ¿La Internet china protegida también tiene menos virus y malware?

¿Cuál es la diferencia entre norton 360, antivirus y seguridad de internet?

¿Existe un software antivirus para Linux / Ubuntu y, de ser así, cuál es el número uno?

¿Se puede proteger y utilizar Windows XP para la navegación web?

Cómo eliminar un virus de acceso directo de mi computadora o computadora portátil

¿Cuáles son las principales razones por las que UNIX / Mac no recibe virus? ¿Cuáles son las razones reales? Porqué es tan dificil? ¿Has oído algo sobre el Kernel que es fuerte? Fuerte como?

Si quiero saber algo y todo sobre seguridad (criptografía), ¿qué debo aprender?

¿Qué debo hacer para ser un experto en seguridad de red?

Cómo desbloquear un archivo RAR protegido por contraseña sin contraseña

¿Por qué es técnicamente difícil rastrear piratas de películas y sus ubicaciones de servidor antes de que las películas se filtren en sitios web de torrents como Pirate Bay? ¿Cómo se manejan estos problemas en diferentes países?

¿Puedo trabajar en cualquier faceta del campo de la seguridad cibernética, incluso si soy terrible y no me gusta la programación (en cualquier idioma)?

¿Cuáles son las amenazas asociadas con los dispositivos portátiles?