SQL注入-基于MSsql(sql server)的注入

本文详细介绍了如何判断网站使用SQLServer数据库,并深入探讨了SQLServer的主要系统表、函数、数据库注入流程以及联合查询和报错注入的方法。通过实例展示了SQLServer的联合查询过程,包括获取数据库名、表名、列名及数据。同时,讲解了布尔型盲注的运用,提供了一系列的payload示例,强调了数据库安全的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、如何判断该网站使用的是sql server 数据库

二、sql server 数据库包含三张主要系统表

三、sql server 主要函数

四、数据库的注入流程

五、sql server 的联合查询

六、sql server 的报错注入

七、sql server 的布尔型盲注。


一、如何判断该网站使用的是sql server 数据库

  • 根据后缀判断:如果后缀为aspx,数据库大概是sql server
  • 根据报错信息判断,报错信息中有Microsoft 字样。
  • 根据系统表判断,and (select count(*)from sysdatabases) >0 ,如果成立的话,则说明它里边含有这个系统表,可以判断为sql server 数据库 sql server 数据库包含三张主要系统表

二、sql server 数据库包含三张主要系统表

  1. sysdatabases :这张表保存在master数据库中,里边的name字段下存放的是所有数据库的库名。 
  2. sysobjects:这张表保存的是数据库的表的信息,里边的id字段存放的是表的id,name为表名,xtype 字段存放的是表的类型,u代表为用户创建的表,s表示该表是系统表。
  3. syscolumns:这张表存放的是数据库中字段的信息,id 为表的id,该id可以通过sysobjects获得。name为字段名称。

三、sql server 主要函数

  1. host_name() :返回服务器端主机名称。
  2. current_user():返回当前数据库用户。
  3. db_name():返回当前数据库库名 。
  4. char():将ASCII码转化为对应的字符。
  5. ASCII():将字符转化为对应的ASCII码。
  6. substring():截取字符串。

四、数据库的注入流程

  1. 获取数据库名称
  2. 获取数据库中表的名称
  3. 获取数据库中表的列名
  4. 获取对应的数据 

五、sql server 的联合查询

1.使用union关键字

2.使用union联合查询注意事项 

  • 首先还是需要知道查询的列数,使用order by n 进行判断 n表示具体列数。
  • sql server 数据库与MySQL数据库不同的是,sql server 数据库前后的数据类型必须一致。
  • 判断出数据的显示位置。
  • 使得先前的查询结果为空。

3.sql server 数据库使用联合查询的演示。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一句话木马

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值