SQL注入
title: SQL注入
tags: SQL注入
abbrlink: e73517db
date: 2022-07-25 07:58:35
注入漏洞形成原理
- sql注入就是在数据交互中,前端数据传到后台时没有做严格的判断,导致传进来的数据被拼接到sql语句中,被当作sql语句的一部分进行执行,从而导致数据泄露,丢失甚至服务器瘫痪。如果代码中没有过滤或者过滤不严谨是会出现漏洞的。
网站分类
静态网页:
- html或者htm,是一种静态的页面格式,不需要服务器解析其中的脚本。由浏览器如(IE、Chrome等)解析。
- 不依赖数据库
- 灵活性差,制作、更新、维护麻烦
- 交互性较差,在功能方面有较大的限制
- 安全,不存在SQL注入漏洞
动态网页:
- asp、aspx、php、jsp等,由相应的脚本引擎来解释执行,根据指令生成静态网页。
- 依赖数据库
- 灵活性好,维护简便
- 交互性好,功能强大
- 存在安全风险,可能存在SQL注入漏洞
SQL注入
注入时信息收集
判断注入
and 1=1 正常
and 1=2 错误
可能存在注入,其实归根结底就是看我们的输入会不会对网站造成影响,即我们的操作有效
单引号:`'
``
/`和
-0``
判断数据库类型
- access
and exists (select * from msysobjects)>0
- sqlserver
and exists (select * from sysobjects)>0
- 判断数据库表
and exists (select * from admin)
- 判断数据库列名
and exists (select admin from admin)
工具扫描
Awvs、burp、appscan、sqlmap
SQL注入- Sqlserver
https://putdown.top/2022/07/29/SQL%E6%B3%A8%E5%85%A5-Sqlserver/
SQL注入- Mysql
https://putdown.top/2022/07/29/SQL%E6%B3%A8%E5%85%A5-Mysql/
SQL注入- Oracle&Postgresql
https://putdown.top/2022/07/29/SQL%E6%B3%A8%E5%85%A5-Oracle-Postgresql%E6%B3%A8%E5%85%A5%E6%BC%8F%E6%B4%9E/
SQL注入- 其他注入漏洞
https://putdown.top/2022/07/29/SQL%E6%B3%A8%E5%85%A5-%E5%85%B6%E4%BB%96%E6%B3%A8%E5%85%A5%E6%BC%8F%E6%B4%9E/
小结
如果对数据库不精通,那么SQL注入就交给工具吧,如今SQL注入工具已经比较完善了。如果工具注入无法完成,再进行手工注入。总之,SQL注入时,一般以工具为主,手工为辅。
SQL注入的危害虽然很大,但是可以完全杜绝,程序开发团队一定要有自己的安全规范模板,因为不可能每个程序员都了解SQL注入,所以团队有一套自己的模板之后,SQL注入会大大减少。比如,碰到SQL语句完全采用“PreparedStatement”类,且必须用参数绑定,如果这样还存在SQL注入,那就是某个程序员没有遵循规范,这样就从安全转移到代码规范问题上,只要遵循规范,不会有问题,这一方法无论是SQL注入,还是后面的其他漏洞,都适用。