前言 最早接触安全也是从xss攻击和sql注入攻击开始的。
和xss一样屡居OWASPtop10 前三名的漏洞,sqli(sql Injection)sql注入攻击也是web安全中影响较大和影响范围较广的漏洞之一。
0x01 原理介绍
sql注入攻击作为注入攻击的一种,不同于xss的html和js代码注入,sql注入攻击注入的sql语句,最终导致数据库执行了用户输入的sql语句,想要sql注入玩的好,要学好sql语句以及了解一些数据库的特性。
0x02 危害性
sql注入由于可以导致数据库直接执行sql语句,而数据又是互联网上的核心资产,危害的影响性不言而喻,近两年屡屡爆出的脱裤事件很多是由于sql注入漏洞导致的。
0x03 分类
关于sql注入的分类,大家各自说法不一。
个人觉得主要分为两个方面一是有回显得,二是没有回显的。有回显的像是有些网站做了报错输出的,当查询错误的时候直接将错误信息显示在页面上,这种攻击比较明显,成本一般比较的低。没有回显的 网站不会直接返回报错信息,但是和正常的页面返回是不一样的,具体的技巧还可以分为返回的页面内容不同和响应的时间不同进行注入,也称为盲注。
攻击技巧也比较的多,要根据具体情况判断。
0x04 防御
- 不同的web开发语言针对sql注入攻击的具体防御代码不同,一般来说,防御sql注入的最佳方式,就是使用预编译语句,绑定变量。
- 使用一些成熟的框架进行开发。
- 定期组织安全开发的培训,培养安全开发的意识,建立安全开发的规范,使程序员写出安全的代码,从根本上解决sqli问题。