Dudas sobre sql inyection.

Iniciado por JessyJames, 3 Enero 2012, 01:18 AM

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

JessyJames

Les cuento que me estoy iniciando en el desarrollo web, sobre todo me gusta trabajar en php.
Hace poco debido a un ataque ddos sobre una de mis webs, empecé a investigar sobre hackeo.
Gracias a eso me dí cuenta que en una web había dejado un formulario sin protección que lleva a un update.
Lo que leyendo sobre sql inyection encontré muchísimo que hacer si logras filtrar un select.
Pero nada para hacer con un update.
Mediante mis pocos conocimientos, logré modificar cualquier columna de la tabla que actualiza el update. Pero no encontré manera de poder atacar otras tablas.

Suponiendo el siguiente código:

Citar
$sSQL="Update tabla Set columna='$columna' Where iduser='$iduser'";
mysql_query($sSQL);

La variable $iduser se toma automáticamente y no puede ser inyectada.
Pero la variable $columna no tiene filtro y es totalmente inyectable.

Debido a eso pude actualizar cualquier columna de esa misma tabla, con los datos que yo deseara. También traté por ejemplo de moficar otra tabla o sacar información de la base de datos.
Pero mis escasos conocimientos no me permiten lograrlo.

Estuve tratando varias estrategias agregando código, pero no llegué a nada.
Hay mucha información sobre inyectar código en un select pero no en un update, o yo por lo menos no encontré nada relevante, si lo hay pido mil perdones....

Bueno espero sus sugerencias.....
Me interesa mucho esto de inyectar código, sobre todo porque espero ser un buen desarrollador algún día..... Y sin saber hackear considero que no se sabe nada de seguridad.
Retomaría el dicho que dice, hecla la ley, hecha la trampa, diciendo si conoces las trampas puedes mejorar las leyes.........


H1jack

En principio da igual el tipo de consulta que se haga,
en este caso solo que el contenido de $columna no se escapara y tuviera un contenido tipo

$columna = "'; DROP TABLE users; SELECT * FROM users "

algo asi podria ser una inyección

Shell Root

MySQL no soporta multiples querys.  :silbar:
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Cleantesdeasso

Buenas, feliz apokalipsis antes q nada :)

Shell Root, no seria posible meter un AND e intentar a ciegas? O inyectar el SELECT cerrando posteriormente la consulta?
"Que no!! q el hash hay q crakiarlo!!"

Shell Root

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.