SQL注入攻击原理以及基本方法

Posted 凌云网络实验室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL注入攻击原理以及基本方法相关的知识,希望对你有一定的参考价值。

SQL注入的概述

SQL注入攻击原理以及基本方法

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

为了更直观的让大家了解到sql注入的原理,贴上一张sql注入攻击示意图。

SQL注入攻击原理以及基本方法
SQL注入攻击原理以及基本方法

SQL注入的威胁和手段

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

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

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

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

●SQL注入攻击的典型手段

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

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

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

●猜解表名、字段名

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

SQL注入攻击原理以及基本方法
SQL注入攻击原理以及基本方法

SQL注入的简单例子

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注入攻击原理以及基本方法


2.收集信息、判断数据库类型

从其返回的信息中可以判断下数据库的类型,更多可能可以知道部分数据库中的字段以及其他有用信息,为下一步攻击提供铺垫。

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

①ID=40 这类注入的参数是数字型,那么SQL语句的原貌大致是:Select*from 表名 where 字段=40

②name=电影 这类注入的参数是字符型,SQL语句原貌大致是:Select*from 表名 where 字段=‘电影’

③搜索时没有过滤参数的,如keyword=关键字,SQL语句原貌大致是:Select*from 表名 where 字段 like ‘%关键字%’

SQL注入攻击原理以及基本方法


4.猜解表名、字段名(直接将SQL语句添加到URL后)

①and exists(select*from 表名)

如果页面没有任何变化,说明附加条件成立,那么就是说明猜解的表名正确,反之,就是不存在这个表,接下来就继续猜解,直到正确

②and exists(select 字段 from 表名)

方法原理同上

③猜解字段内容(利用以上猜解出的表名和字段名 方法较古老且麻烦)

●猜解字段内容的长度

(select top 1 len(字段名)from 表名)>0 直至猜解到>n不成立的时候,得出字段的长度为:n+1。

●得到长度后,猜解具体的内容

(select top 1 asc(mid(username,1,1))from 表名)>0直到>m不成立时,就可以猜解出ASCII码值了。

             

SQL注入攻击原理以及基本方法
SQL注入攻击原理以及基本方法


SQL注入攻击原理以及基本方法


                                                                     

 

有一颗白帽子心

愿望是凭借每一次心动仗剑走天涯


以上是关于SQL注入攻击原理以及基本方法的主要内容,如果未能解决你的问题,请参考以下文章

试解释 SQL 注入攻击的原理,以及对数据库可能产生的不利影响。

SQL注入的基本原理

如何检测SQL注入技术以及跨站脚本攻击

荐PDO防 SQL注入攻击 原理分析 以及 使用PDO的注意事项

Sql注入攻击基本原理

Sql注入基本原理