SQL注入小结

一、SQL注入的概述

定义:SQL注入即是指web应用程序对用户输入数据的合法性没有判断,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。

 

 

 

(1)SQL注入威胁表现形式可以体现为以下几点:

        ●绕过认证,获得非法权限

        ●猜解后台数据库全部的信息

        ●注入可以借助数据库的存储过程进行提权等操作

(2)SQL注入攻击的典型手段

        ●判断应用程序是否存在注入漏洞

        ●收集信息、并判断数据库类型

        ●根据注入参数类型,重构SQL语句的原貌

        ●猜解表名、字段名

        ●获取账户信息、攻击web或为下一步攻击做准备

二、SQL注入的判断方法

        ①http://www.heetian.com/showtail.asp?id=40'

        ②http://www.heetian.com/showtail.asp?id=40 and 1=1

        ③http://www.heetian.com/showtail.asp?id=40 and 1=2

        如果执行①后,页面上提示报错或者提示数据库错误的话,说明是存在注入漏洞的。

        如果执行②后,页面正常显示,而执行③后,页面报错,那么说明这个页面是存在注入漏洞的。

 

三、常见的sql注入产生原因

基于此,SQL注入的产生原因通常表现在以下几方面:

①转义字符处理不合适;

②不安全的数据库配置;

③不合理的查询集处理;

④不当的错误处理;

⑤多个提交处理不当。

详细解释:

(1)不当的处理类型

Sql数据库将单引号字符(’)解析成代码与数据间的分界线:单引号外面的内容军事需要运行的代码,而用单引号引起来的内容均是数据。因为只需要简单的在URL或WEB页面的字段中输入一个单引号,就能很快速的识别出web站点是否会受到sql注入攻击。

 

四、SQL注入攻击的简单示例:

这里我们举一个比较常见的例子来简要说明一下sql注入的原理。

假如我们有一个users表,里面有两个字段username和password。在我们的java代码中我们初学者都习惯用sql拼接的方式进行用户验证。比如:

"select id from users where username = '"+username +"' and password = '"  + password +"'" 

这里的username和password都是我们存取从web表单获得的数据。下面我们来看一下一种简单的注入:

如果我们在表单中username的输入框中输入 ' or 1=1--  ,password的表单中随便输入一些东西,假如这里输入123。此时我们所要执行的sql语句就变成了:

select id from users where username = '' or 1=1--  and password = '123'

我们来看一下这个sql,因为1=1是true,后面 and password = '123'被注释掉了。所以这里完全跳过了sql验证

六、注入原理

 SQL注入式攻击的主要形式有两种。

一是直接将代码插入到与SQL命令串联在一起并使得其以执行的用户输入变量。上面笔者举的例子就是采用了这种方法。由于其直接与SQL语句捆绑,故也被称为直接注入式攻击法。

二是一种间接的攻击方法,它将恶意代码注入要在表中存储或者作为原书据存储的字符串。在存储的字符串中会连接到一个动态的SQL命令中,以执行一些恶意的SQL代码。注入过程的工作方式是提前终止文本字符串,然后追加一个新的命令。如以直接注入式攻击为例。就是在用户输入变量的时候,先用一个分号结束当前的语句。然后再插入一个恶意SQL语句即可。由于插入的命令可能在执行前追加其他字符串,因此攻击者常常用注释标记 “--” 来终止注入的字符串。执行时,系统会认为此后语句为注释,故后续的文本将被忽略,不被编译与执行。

 

SQL注入很复杂,本文知识简单浅薄了解一下,有想深入理解的,可查看本文末参考博客,在此对引用文章,原博博主表示深深感谢。

 

 

参考及致谢:

1.sql注入攻击详解(原理理解)

2.SQL注入攻击原理以及基本方法(本文中引用图来源)

3.SQL注入原理及产生过程

4.小试牛刀:SQL 注入攻击(这一篇虽然没有引用,但是很好,属于实操性的,手把手带图领着你一步一步实现注入)

 

Over......

posted @ 2021-02-18 20:01  额是无名小卒儿  阅读(186)  评论(0编辑  收藏  举报