MSSQL手工注入漏洞详解与提权过程

需积分: 9 13 下载量 153 浏览量 更新于2024-09-16 收藏 629KB DOCX 举报
在本次讨论中,我们将深入探讨MSSQL手工注入攻击并提权的过程。首先,我们注意到攻击者在目标站点<http://www.xxoo.net>上进行测试,通过在URL参数中添加单引号来检测是否存在SQL注入漏洞。当尝试执行带有`order by pu_id asc`的语句时,由于缺少闭合引号而触发错误,显示出存在注入点。 接下来,攻击者利用这个漏洞获取MSSQL服务器的基础信息。他们通过构造SQL查询来查看数据库版本,如`http://www.xxoo.net/directory/xxoo.ASP?xx_ID=237'and0<>(select@@version)`, 发现目标系统为SQL Server 2000。接着,他们进一步检查当前数据库名,以及验证数据库用户权限,如`http://www.xxoo.net/directory/xxoo.ASP?xx_ID=237'anddb_name()>0` 和 `http://www.xxoo.net/directory/xxoo.ASP?xx_ID=237'anduser>0`。 为了判断系统是否支持多语句查询,攻击者尝试了`http://www.xxoo.net/directory/xxoo.ASP?xx_ID=237';declare @aint`,结果显示是可以执行多语句的。在继续深入之前,他们决定先查找数据库目录,以防直接获取账号密码后无法找到后台,因此排除了如`admin.asp`和`login.asp`等常见的目录名称。 利用web扫描工具如wwwscan,攻击者发现了实际的管理员登录页面路径,即`admin_main_asp`,但尝试访问时发现登陆超时,并被重定向至`system`目录。这表明系统可能存在权限控制,但并未阻止进一步的攻击。 最后,攻击者开始执行SQL注入以获取数据,例如使用`http://www.xxoo.net/directory/xxoo.ASP?xx_ID=237'and(select top 1 name from sysobjects where...` 这样的构造,目的是获取`sysobjects`表中的第一条对象名,这是提权过程中的第一步,通常会用来探索数据库结构和可能的敏感信息。 总结来说,这个案例展示了手动渗透MSSQL系统的过程,包括识别注入漏洞、利用漏洞获取信息、确认系统特性、寻找目标目录并尝试提权。这些步骤提醒我们在开发和维护网站时,必须加强输入验证,以防止此类安全威胁。