send
Grupo de Telegram
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

SQL injection MySQL V4 + Upload Shell

  • 5 Respuestas
  • 4382 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado arthusu

  • *
  • Underc0der
  • Mensajes: 525
  • Actividad:
    0%
  • Reputación 2
  • Yo solo se que no se nada - Socrátes
    • Ver Perfil
    • Arthusu BLOG
  • Skype: arthusuxD
« en: Marzo 07, 2013, 02:54:22 am »
Hola amigos de underc0de este articulo lo postee en mi BLOG pero decido postearlo aqui tambien espero les guste :p

En este tutorial intentare mostrar como inyectar en una database MySQL Version 4....
Antes que nada debemos tener un poco de conocimientos de SQL o MySQL.
Bueno tenemos una url vulnerable.... En este caso pues yo ya se que es Version 4...
Empecemos....

Primero empezaremos viendo si la pagina es vulnerable para ello pondremos en la consulta host de la pagina un ' o " o \ o cualquier caracter no valido que pueda romper una query(peticion)....



Bueno como vemos hemos roto la consulta con un ' y sabemos que nuestra DBMS es MySQL.... ahora empecemos a ordernar columnas :D



 hicimos un order by 10 es decir que ordenemos las columnas por la columna 10... pero como esa columna no existe nos envia un error "Unknown column '10' in 'order clause' " que dice que no existe la columna 10 en order by clause ....

entonces vamos intentando menos... como sabemos que no existe 10 por logica entonces debemos intentar menos por que no 5? :D



vemos que nos arroja la pagina entonces con esto sabemos que si logro ordenar por 5 columnas esto no quiere decir que tenga 5... intentemos ponerle 6 :D order by 6 :P



Ahora si estamos seguros de que esta consulta tiene 5 columnas por que a la 6 nos arrojo que no existia entonces estaria algo asi:

$query='select column1,column2,column3,column4,column5 from table where id=$id';

bueno entonces como ya sabemos cuantas columnas contiene solamente las unimos.... union select 1,2,3,4,5



cuando hacemos el union de columnas nos arroja unos numeros con eso sabemos que esos son los campos vulnerables 3 y 4 y podemos inyectar ahi nuestras funciones.... por ejemplo: version() user() database(), etc...



bueno ahi tenemos sacamos la version() que es 4.1.22 y el user con el que podriamos conectar a mysql....

entonces como sabemos que es una version 4 en esta version no se encuentra la base de datos de tipo metadatos information_schema con la que se podria conseguir las otras bases de datos, tablas, columnas y registros por lo que en este caso tendriamos que adivinar :D

entonces si ya sabemos los numeros de columnas que hay en la query solo haria falta saber desde que tabla esta seleccionando esos datos.... para ello vamos a hacer adivinando (modo bruteforce) entonces nuestra consulta formada seria de la siguiente manera:

union select 1,2,version(),user(),5 from admin

como ven admin es una tabla que no sabemos si es o no admin solo que estamos adivinando.... podria ser cualquier otra pueden usar, ya hay tablas mas usadas para ello pueden usar las que dejo You are not allowed to view links. Register or Login You are not allowed to view links. Register or Login

entonces que nos saldra con la de admin ....
union select 1,2,version(),user(),5 from admin.....



como ven dice que la tabla admin no existe con eso sabemos que tenemos que buscar otra tabla y asi hasta dar con una tabla que pueda ser interesante....

el error seria:

table database.admin doesn't exist

entonces seguiremos intentando con las tablas.....



como la pagina se mostro normal con las columnas que insertamos entonces sabemos que la tabla es correcta, la tabla seria administrators....

union select 1,2,version(),user(),5 from administrators

ahora entre los campos vulnerables tenemos que empezar a buscar adivinando las columnas que pueda haber en la tabla administrators....

y bueno para no seguir lo mismo pueden usar la tabla de arriba e intentar adivinar (bruteforce) por ejemplo puedes usar id que seria normal que haya muchos usuarios en esa tabla entonces insertamos id como columna....

union select 1,2,id,user(),5 from administrators



vemos que id es un campo correcto entonces podemos ir anotando datos en un bloc de notas, gedit, kate, etc....

seguimos intentando a bruteforce (adivinando), hasta encontrar todos los campos en este caso encontre que eran: id,user_name,user_password ....

entonces podriamos hacer un group_concat para que nos mostrara todos los registros juntos, group_concat no puede devolver todos los registros si son demasiados por lo que muchas veces necesitaras utilizar solamente concat o concat_ws con un limit de los registros a devolver.....

en este caso seria algo asi:
union select 1,2,group_concat(id,0x2d,user_name,0x2d,user_password),user(),5 from administrators

donde 0x2d seria un campo hexadecimal un divisor para que sepamos donde esta cada registro 2d es igual a - en hex pero para que mysql lo reconosca como hexadecimal agregamos 0x :P



entonces tenenemos dos usuarios administrators esto lo sabemos por el separador o divisor - id-user_name-user_password

como ven nuestro usuario esta encriptado y para saber el tipo de encriptacion solo hay que saber algo sobre criptografia.....

en este caso es un md5($pass,$salt)
podemos usar un software como You are not allowed to view links. Register or Login o You are not allowed to view links. Register or Login para intentar desencriptarlo por medio  de diccionarios.....
o tambien puedes utizar webs online que realizan este trabajo de una manera mas rapida por que tienen guardados los datos en su base de datos.....



encontradas las passwords podemos buscar si esta aplicacion tiene programado algun panel de admin pero como tiene user y pass deberia tener no(?)
 :P entonces podriamos empezar a buscar por robots.....

pagina.com/robots.txt

muchas veces podemos encontrar cosas interesantes....

la otra opcion que se puede usar es google o bing o cualquier buscador :D

site: You are not allowed to view links. Register or Login

y encontrar enlaces que puedan servir....

otra opcion es algun directory fuzzer o admin panels finders hay online tambien de estos..... aunque en este caso no utilizare por que se cual es podrias usar por ejemplo: You are not allowed to view links. Register or Login o un servicio You are not allowed to view links. Register or Login



Bueno ahi tenemos nuestro login entonces lo que aqui sabemos es que es un You are not allowed to view links. Register or Login osCommerce nos logeamos con el user y password(desencriptada)

Encontre que la pagina de administracion tenia un script que redirigia a otra web despues de acceder por lo que active You are not allowed to view links. Register or Login para que no se ejecutara el script....




revisando la pagina de administracion no tenia nada para subir shell, entonces lo que hice es como tenemos acceso a la administracion y sabemos que tenemos un cms un poco desactualizado buscamos algunas vulenrabilidades por google :D

y me encontre con uno You are not allowed to view links. Register or Login
lo siguiente subir mi shell.....





Listo de aqui terminaria el articulo podriamos hacer mas ataques de vulnerabilidades, o simplemente borrar la shell dejar un simple txt para darte un credito y avisar al administrador..... nunca defacear por que como dijo You are not allowed to view links. Register or Login en su articulo de vulnerabilidades web comunes muchos webmasters se enojan y te buscan para encarcelarte, otros puede que sean tus amigos pero la mayoria se enojaria a nadie le gusta que le digan sus errores xD :P
« Última modificación: Noviembre 23, 2014, 01:49:36 pm por Expermicid »

Desconectado m3x1c0h4ck

  • *
  • Underc0der
  • Mensajes: 79
  • Actividad:
    0%
  • Reputación 0
  • i like girls
    • Ver Perfil
    • Email
  • Skype: m3x1c0h4ck
« Respuesta #1 en: Marzo 07, 2013, 03:04:27 am »
exelente hermano

muy bueno i gran explicacion

Desconectado 2Fac3R

  • *
  • Underc0der
  • Mensajes: 231
  • Actividad:
    0%
  • Reputación 0
  • Why be a king, when you can be a god
    • Ver Perfil
  • Skype: rockeg_18
« Respuesta #2 en: Marzo 07, 2013, 09:58:02 pm »
Buen tuto brot, veo que ultimamente tienes mucho tiempo para seguir practicando y hacer tutos, te envidio, yo estoy a full con el tiempo ejeje xD.

Zalu2

Desconectado s0ul0fh4ck

  • *
  • Underc0der
  • Mensajes: 8
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #3 en: Marzo 10, 2013, 12:52:13 am »
Excelente tutorial! Muchas gracias por compartirlo aqui...

saludos!

Desconectado baron.power

  • *
  • Underc0der
  • Mensajes: 285
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #4 en: Marzo 31, 2013, 09:32:01 am »
genial, excelente trabajo, gracias por tu tiempo y por compartirlo, saludos bro

Desconectado Mr_Pack

  • *
  • Underc0der
  • Mensajes: 59
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • r00tc0d3rs
    • Email
« Respuesta #5 en: Mayo 22, 2013, 08:03:32 pm »
muy bueno arthusu  gracias por compartir :D

salu2
____________________________

my best crime is myself

 

¿Te gustó el post? COMPARTILO!



vBulletin 5.0.0 Beta 11 - 5.0.0 Beta 28 - SQL Injection

Iniciado por morodog

Respuestas: 1
Vistas: 1585
Último mensaje Junio 09, 2013, 12:05:31 pm
por ANTRAX
SQL Injection - Joomla módulo "com_fireboard"

Iniciado por M5f3r0

Respuestas: 0
Vistas: 1431
Último mensaje Agosto 16, 2013, 01:43:18 am
por M5f3r0
Shell-Save_1.0 [Administra de manera mas eficiente tus webshells online]

Iniciado por q3rv0

Respuestas: 9
Vistas: 3534
Último mensaje Abril 14, 2013, 05:34:46 am
por s3cur1tyr00t
Explotar LFI, Subir Shell Explotando /proc/self/environ y Backdoorizar

Iniciado por hdbreaker

Respuestas: 1
Vistas: 2112
Último mensaje Julio 17, 2012, 12:35:31 am
por hdbreaker
Subir Shell a través de Inyección SSI (Server-side include)

Iniciado por CalebBucker

Respuestas: 7
Vistas: 3409
Último mensaje Junio 23, 2012, 08:44:07 am
por s3cur1tyr00t