12.01.2015 Views

Tuxinfo - Index of

Tuxinfo - Index of

Tuxinfo - Index of

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

sql injection<br />

Guerreros de la oscuridad<br />

ACLARACIÓN: El contenido de este artículo tiene un fin<br />

educativo, y para prevención y concientización del uso de<br />

buenas prácticas de programación. Ni Marcelo Guazzardo, ni<br />

los integrantes de <strong>Tuxinfo</strong> se harán responsables del mal uso<br />

que se le pudiere dar a los conocimientos aquí explicitados.<br />

POR MARCELO GUAZZARDO<br />

El objetivo de<br />

esta nota, que si<br />

puedo será el comienzo de<br />

una serie de notas, será hablar<br />

del famoso sql injection, esta vez,<br />

mostrando una dupla muy usada<br />

para construir sitios en internet,<br />

como es PHP y MYSQL.<br />

El lector deberá tener conocimientos<br />

mínimos de sentencias SQL, (Ya<br />

que no es el objetivo de esta nota<br />

explicar SQL), y se mostrarán<br />

ejemplos básicos de sentencias<br />

SQL.<br />

Para poder seguir mejor la nota,<br />

mostraré un ejemplo real de una<br />

página mal programada adrede,<br />

para que se pueda practicar. El<br />

lector deberá levantar un entorno<br />

LAMPP como se dice ahora,<br />

apache, mysql, php con extensiones<br />

mysql. La idea es que si tengo<br />

tiempo arme una virtual machine<br />

para que se pueda seguir el artículo<br />

y la ponga en mi página personal,<br />

pero por ahora les dejo la tarea para<br />

el hogar a ustedes. ;­).<br />

Comenzando<br />

Para los fines de esta nota, voy a<br />

seguir los ejemplos con el sitio que<br />

doy como ejemplo.<br />

NOTA1: Para este ejemplo, he<br />

tomado y modificado algunos datos<br />

de un paper de ka0z, lo pueden<br />

encontrar<br />

en<br />

http://www.insecure.in/papers/Blind_<br />

MySQL_Injection.pdf<br />

NOTA2: El ejemplo está dado como<br />

root, ya que root en mysql tiene<br />

privilegios de File, y otros, no en<br />

todos los sitios que se puedan<br />

inyectar van a encontrar como root<br />

el userdb, pero aunque no lo crean,<br />

me tocó hacer pen testing, y en<br />

algunos estaban corriendo como<br />

root ¡el userdb!. La recomendación<br />

es más que obvia, JAMÁS se<br />

deberá correr una db como root en<br />

una aplicación.<br />

Generamos por empezar una base<br />

donde alojaremos algunos datos<br />

básicos, para la muestra de sql<br />

injection.<br />

A continuación, el código:<br />

CREATE DATABASE tuxinfo;<br />

USE tuxinfo<br />

CREATE TABLE `users` (<br />

`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,<br />

`name` VARCHAR(50) NOT NULL,<br />

`password` VARCHAR(50) NOT NULL,<br />

PRIMARY KEY (`id`)<br />

) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;<br />

-- users --<br />

INSERT INTO `users` VALUES (1, 'administrator', '123456');<br />

INSERT INTO `users` VALUES (2, 'jax0r', 'muestra');<br />

INSERT INTO `users` VALUES (3, 'otro', 'algo');<br />

28 www.tuxinfo.com.ar

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!