Insertar datos con inyeccion sql

Iniciado por Gorky, 5 Noviembre 2009, 22:58 PM

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

Gorky

Buenas foreros. Ando investigando sobre la inyeccion sql. Imaginad que tengo la siguiente url:
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 ....
Sin embargo yo estoy usando mysql. Alguien me puede echar una mano?

:ohk<any>

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.
Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.

Gorky

Entonces no existe forma de poder insertar datos con una url vulnerable?

WHK

#3
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.

OzX

#4
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


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¡