SQL是操作数据库数据的结构化查询语言,网页的应用数据和后台数据库中的数据进行交互时会采用SQL。而SQL注入是将Web页面的原URL、表单域或数据包输入的参数,修改拼接成SQL语句,传递给Web服务器,进而传给数据库服务器以执行数据库命令。如Web应用程序的开发人员对用户所输入的数据或等内容不进行过滤或验证(即存在注入点)就直接传输给数据库sql注入,就可能导致拼接的SQL被执行,获取对数据库的信息以及提权,发生SQL注入攻击。
SQL注入原理:
SQL注入攻击是通过操作输入来修改SQL语句,用以达到执行代码对WEB服务器进行攻击的方法。简单的说就是在post/表单、输入域名或页面请求的查询字符串中插入SQL命令,最终使web服务器执行恶意命令的过程。可以通过一个例子简单说明SQL注入攻击。假设某网站页面显示时URL为,此时URL实际向服务器传递了值为123的变量test,这表明当前页面是对数据库进行动态查询的结果。由此,我们可以在URL中插入恶意的SQL语句并进行执行。另外sql注入,在网站开发过程中,开发人员使用动态字符串构造SQL语句,用来创建所需的应用,这种情况下SQL语句在程序的执行过程中被动态的构造使用,可以根据不同的条件产生不同的SQL语句,比如需要根据不同的要求来查询数据库中的字段。这样的开发过程其实为SQL注入攻击留下了很多的可乘之机。
SQL注入:
通过把SQL命令插入到WEB表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
SQL注入类型:
1、按照注入点分类:
(1)数字型注入:许多网页链接有类似的结构 基于此种形式的注入,注入点id为数字,一般被叫做数字型注入点,通过这种形式查询出后台数据库信息返回前台展示,可以构造类似以下的sql语句进行爆破: *** from 表名 where id=1 and 1=1。
(2)字符型注入:网页链接有类似的结构
这种形式,注入点name为字符串,被称为字符型注入,可以用: *** from 表名 where name='admin' and 1=1。
(3)搜索型注入:主要是指在数据搜索时没有过滤搜索参数,一般在链接地址中有 "=“关键字”",注入点提交的是sql语句, * from 表名 where 字段 like '%关键字%' and '%1%'='%1%'。
2、按照执行效果来分类:
1)基于布尔的盲注:根据页面返回判断条件真假注入。
2)基于时间的盲注:即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。
3)基于报错的注入:即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。
4)联合查询注入:可以使用union情况下注入。
限时特惠:本站持续每日更新海量各大内部创业课程,一年会员仅需要98元,全站资源免费下载
点击查看详情
站长微信:Jiucxh