@Bucio: Esperando al teniente coronel :/ (@ Secretaria Para El Desarrollo De La Frontera Sur) http://t.co/32FesgPro6

Archivos de ‘SQL‘

 
 

php y mysql

En la clase del D.R Pimentel empezamos a ver php, me toco exponer el tema de php+mysql se los dejo:

Archivos: http://goo.gl/iRD9r

mysql y jsp

Dentro de las practicas de la universidad, se usa mysql para esto se debe tener un conector:
[conector] http://dev.mysql.com/downloads/connector/j/5.1.html
Al descargar el .tar.gz se descomprime, y copiamos (cómo root) el .jar al directorio de nuestro java:

cp mysql-connector-java-5.1.15-bin.jar /usr/lib/jvm/java-6-openjdk/jre/lib/ext/

Después modificamos el demonio de el tomcat instalado, buscando la linea que diga tomcat_security

gedit /etc/init.d/tomcat5.5

En mi caso es 5.5, y buscamos la siguiente linea y la cambiamos el yes po no, quedando de esta forma:

# Use the Java security manager? (yes/no)
TOMCAT5_SECURITY=no

De esta forma ya podemos usar nuestro mysql y jsp haremos una prueba primero crearemos una bd con contenido para desplegar:

CREATE TABLE IF NOT EXISTS `datos` (
  `nombre` varchar(30) NOT NULL,
  `apellido` varchar(30) default NULL,
  `dato` varchar(40) default NULL,
  PRIMARY KEY  (`nombre`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Añadimos contenido:

INSERT INTO `datos` (`nombre`, `apellido`, `dato`) VALUES
('rafael', 'bucio', 'Soy de la politecnica');

Listo checamos la bd por si las moscas:

mysql> use poli;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+----------------+
| Tables_in_poli |
+----------------+
| datos          |
+----------------+
1 row in set (0.00 sec)

mysql> describe datos;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| nombre   | varchar(30) | NO   | PRI | NULL    |       |
| apellido | varchar(30) | YES  |     | NULL    |       |
| dato     | varchar(40) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql>

La base de datos Poli,contiene una tabla llamada datos y esto es el contenido:

mysql> select * from datos;
+--------+----------+-----------------------+
| nombre | apellido | dato                  |
+--------+----------+-----------------------+
| rafael | bucio    | Soy de la politecnica |
+--------+----------+-----------------------+
1 row in set (0.00 sec)

Que es lo que madaremos a llamar en nuestra pagina en jsp, creamos dos archivos en archivo jsp uno para guardar el usuario y base de datos y el otro donde desplegaremos el contenido de la base de datos:

bd.jsp

<%! String usersql(){ return  "root"; } String contrasql(){ return  "123456"; } %>

Ahora el pseudo código de db.jsp con explicación en forma de comentarios:

// La base de datos que usaremos en este caso -poli-
String bd =  "jdbc:mysql://localhost:3306/poli";
// El conector
Class.forName("com.mysql.jdbc.Driver").newInstance();
// La conexión con la base de datos aqui mandamos a llamar usuario y contraseña en bd.jsp
mysql =  DriverManager.getConnection(bd, usersql(), contrasql());
// Nos servira para la la consulta y se ve más limpia
declaracion=  mysql.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
// La consulta
consulta = declaracion.executeQuery("select  nombre, apellido, dato from datos");

...

try{
// intentamos la consulta.
consulta = declaracion.executeQuery("select  nombre, apellido, dato from datos");
out.println("
");
out.println("

");
// sacamos los strings en este caso 3 nombre apellido y dato
while(consulta.next()){

}
...
.... "+consulta.getString(1)+"
....  "+consulta.getString(2)+"
.."+consulta.getString(3)+"

");
}
// cachamos las excepciones :-) .
catch(Exception e){  out.println(e);}

Esto nos quedaría de esta forma:

Y quedaría así:
http://works.bucio.com.mx/code/jsp/bd.jsp.txt

jsp y mysql

jsp y mysql

Inyección del SQL a ciegas por tiempo

Paseándome por los foros de Hackerss.com me encuentro con un post de Alluz :O sobre, los ataques que se dan con consultas pesadas, logrando la explotación de las bases de datos de ciertos servidores :O…

En si el texto habla, las técnicas, pero me sorprende al ver el ejemplo de Chris Anely:

<<•••••• if (ascii(substring(@s, @byte, 1)) & ( power(2, @bit))) > 0 waitfor delay ’0:0:5′
…es posible determinar si un trozo dado en un serie es ‘1’ o ‘0’. Es decir, la consulta anterior entrará en pausa por cinco segundos si el ‘@bit’ del byte ‘@byte’ en una serie ‘@s’ es ’1.’
Por ejemplo en la siguiente consulta:
declare @s varchar(8000) select @s = db_name() if (ascii(substring(@s, 1, 1)) & ( power(2, 0))) > 0 waitfor delay ’0:0:5′
Entrará en pausa por cinco segundos si el primer bit del primer byte del nombre de la base de datos actual es 1.


Seguir Leyendo


Campus Party

Publicidad