一、SQL注入攻击详细介绍笔记

所谓sql注入,就是通过把sql命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的sql命令。具体来说,它是利用现有应用程序,将(恶意的)sql命令注入到后台数据库引擎执行的能力,它可以通过在web表单中输入(恶意)sql语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图就执行sql语句。

1、SQL注入的原理
Sql注入攻击指的是通过构建特殊的输入作为参数传入web应用程序,而这些输入大都是sql语法里的一些组合,通过执行sql语句进而执行攻击者所要的操作,其中主要原因是程序没有细致的过滤用户输入的数据,致使非法数据侵入系统。
2、SQL注入的危害
(1)数据库信息泄露
(2)网页篡改:通过操作数据库对特定网页进行篡改,嵌入网马链接,进行挂马攻击。
(3)数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被更改。
(4)服务器被远程控制:黑客可以修改或控制操作系统。
(5)种植木马:瘫痪全系统。
3、SQL注入常见的攻击手段
(1) 判断应用程序是否存在注入漏洞
(2) 收集信息、并判断数据库类型
(3) 根据注入参数类型,重构SQL语句的原貌
(4)猜解表名、字段名
(5) 获取账户信息、攻击web或者下一步攻击做准备
5、SQL注入的分类
(1)按照注入点类型分类
数字型注入、字符型注入、搜索型注入
(2)按照数据提交方式分类
GET注入:提交数据的方式是GET,注入点的位置在GET参数部分。
POST注入:使用POST方式提交数据,注入点位置在POST数据部分,常发生在表单中
Cookie注入:http请求的时候会带上客户端的cookie,注入点存在cookie当中的某个字段中
(3)按照执行效果分类
基于布尔类型的盲注,即可以根据返回页面判断条件真假的注入
基于时间的盲注,即不能根据页面返回的内容判断任何信息,要用条件语句查看时间延迟语句是否已经执行(即页面返回时间是否增加)来判断
基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回到页面中
联合查询注入,在可以使用Union的情况下注入
堆查询注入,可以同时执行多条语句时的注入
7、常见的防御手段
(1)所有的查询语句都使用数据库提供的参数化查询接口,参数化的语句使用参数而不是将用户输入变量嵌入到SQL语句中。当前几乎所有的数据库系统都提供了参数化SQL语句执行接口,使用此接口可以非常有效的防止SQL注入攻击。
(2)对进入数据库的特殊字符(’”<>&*;等)进行转义处理,或编码转换。
(3)确认每种数据的类型,比如数字型的数据就必须是数字,数据库中的存储字段必须对应为int型。
(4)数据长度应该严格规定,能在一定程度上防止比较长的SQL注入语句无法正确执行。
(5)网站每个数据层的编码统一,建议全部使用UTF-8编码,上下层编码不一致有可能导致一些过滤模型被绕过。
(6)严格限制网站用户的数据库的操作权限,给此用户提供仅仅能够满足其工作的权限,从而最大限度的减少注入攻击对数据库的危害。
(7)避免网站显示SQL错误信息,比如类型错误、字段不匹配等,防止攻击者利用这些错误信息进行一些判断。
(8)在网站发布之前建议使用一些专业的SQL注入检测工具进行检测,及时修补这些SQL注入漏洞。
8、WAF相关介绍
(1)waf(web应用防火墙),web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专 门为web应用提供保护的一款产品。
(2)常见的绕过方式:双写、大小写、替换关键字、编码绕过注入、等价函数和命令、使用注释‘。
9、SQLMAP的使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值