一位朋友指出了我所使用的应用程序中的一个 SQL 注入漏洞。
此搜索参数:
'; exec xp_cmdshell 'dir'; --
返回消息:
The EXECUTE permission was denied on the object
'xp_cmdshell', database 'mssqlsystemresource', schema 'sys'.
因为搜索是从仅对几个表和存储过程具有选择权限的帐户运行的。
我想知道,如果恶意用户碰巧知道 SQL 服务器管理员帐户的登录信息,他们是否可以使用凭据通过 cmd shell 获得对机器的 root 访问权限,或者进行其他一些恶意的工作?
答案1
SQL 注入可能会使用 切换到 SQL 服务器上具有更高权限的用户exec as {credentials}
。但是,运行查询的原始用户必须拥有IMPERSONATE
他们试图切换到的用户的权限。这不是默认配置,您必须添加它(添加它也相当奇怪)。
答案2
是否可行其实并不重要,你有一个合法的问题需要解决。这个命令甚至不应该被发回服务器。