Título: Insertar datos con inyeccion sql Publicado por: Gorky en 5 Noviembre 2009, 22:58 pm Buenas foreros. Ando investigando sobre la inyeccion sql. Imaginad que tengo la siguiente url:
http://localhost/archivo.php?id=7 (http://localhost/archivo.php?id=7) Y resulta que es vulnerable. De que forma podria aprovechar esa vulnerabilidad para insertar datos en las tablas? He estado viendo que en Oracle seria asi: http://localhost/archivo.php?id=7; insert into .... (http://localhost/archivo.php?id=7; insert into ....) Sin embargo yo estoy usando mysql. Alguien me puede echar una mano? Título: Re: Insertar datos con inyeccion sql Publicado por: :ohk<any> en 5 Noviembre 2009, 23:10 pm Como ya dijeron antes, en mysql no puedes usar 2 sentencias al mismo tiempo, un SELECT no va con un INSERT, en oracle todo lo contrario.
Título: Re: Insertar datos con inyeccion sql Publicado por: Gorky en 5 Noviembre 2009, 23:12 pm Entonces no existe forma de poder insertar datos con una url vulnerable?
Título: Re: Insertar datos con inyeccion sql Publicado por: WHK en 5 Noviembre 2009, 23:19 pm Depende como esté hecha la query, si por ejemplo en alguna parte se utilizan estadisticas locales entonces esa petición GET se irá a la base de datos con algún update o insert, en ese casi si podrías inyectar pero cuando es desde un select a un update entonces no se puede.
http://foro.elhacker.net/nivel_web/inyeccion_sql_mysql_update_dentro_de_un_select-t241813.0.html Ahora, puede que ese sitio web utilize librerías preconstruidas donde si acepte el carácter ";" como separador de querys, en ese caso si podrías hacer un update concatenando ambas querys con ";" pero por defecto no se puede. Lo que hacen la mayoria de las clases prefabricadas es separar todo el string en un solo array dimensional separados por el ";" y luego comienza a procesar query por query. Título: Re: Insertar datos con inyeccion sql Publicado por: OzX en 7 Noviembre 2009, 00:54 am hi brotas
lo que intentas hacer se llamada "stacked querys" En mysql no se puede hacer una consulta independiente a la original, en SQL como lenguaje se ocupa el ; para generar una nueva consulta a ello se llama "Stacked Querys", pero hay distintas restricciones para distintas base de datos, en la imagens e muestran las combinaciones. IMG sacada de los Papper de la Blackhat (http://www.ubuntu-pics.de/bild/20593/screenshot_191_lbJN7j.png) Y sobre http://foro.elhacker.net/nivel_web/inyeccion_sql_mysql_update_dentro_de_un_select-t241813.0.html La respuesta definitiva es que en Mysql con php no se puede. Saludos¡ |