CREATEUSER'<username>'@'localhost'IDENTIFIEDBY'<password>';GRANTSELECT,INSERTON<db_name>.*TO'<username>'@'localhost';REVOKEUPDATEON<db_name>.*FROM'<username>'@'localhost';SHOWGRANTSFOR'<username>'@'localhost';-- Información de permisosSELECT*FROMINFORMATION_SCHEMA.USER_PRIVILEGES;SELECT*FROMINFORMATION_SCHEMA.TABLE_PRIVILEGES;SELECT@@secure_file_priv;-- Tablas internasmysql.user-- usuarios y hashesmysql.db-- permisos por DBmysql.tables_priv-- permisos por tabla
-- ¿Primer carácter de <columna> donde id=1 es 'a'?SELECTIF((SELECTSUBSTRING(<columna>,1,1)FROM<db_name>.<table_name>WHEREid=1)='a',SLEEP(5),NULL);
Enumerar tablas y columnas
-- Todas las columnas de todas las tablasSELECTCONCAT('[',table_name,']','[',column_name,']')FROMinformation_schema.columnsWHEREtable_schema='<db_name>';-- Filtrar columnas con 'pass' en el nombreSELECTCONCAT('[',table_name,']','[',column_name,']')FROMinformation_schema.columnsWHEREtable_schema='<db_name>'ANDcolumn_nameLIKE'%pass%';
Usuarios del sistema MySQL
-- Todos los usuariosSELECTCONCAT('[',User,']','[',Host,']')FROMmysql.user;-- Con FILE privilegeSELECTCONCAT('[',User,']','[',Host,']','[',File_priv,']')FROMmysql.user;-- Solo usuarios con File_priv = 'Y' (peligrosos en pentest)SELECTCONCAT('[',User,']','[',Host,']')FROMmysql.userWHEREFile_priv='Y';