登录
首页精彩阅读sql注入漏洞史上最详细的解释
sql注入漏洞史上最详细的解释
2017-05-26
收藏

sql注入漏洞史上最详细的解释

一、原理

首先,先了解一下原理,就拿一个最简单的例子吧,登录功能,如果后台sql语句执行是:

通过传来的用户名和密码查找数据库是否有记录。当我们用户名输入一个万能账号,' or 1=1--,那后台语句就变成了:

1=1为真,密码输入什么都可以,因为被--注释掉了,所以会登录成功。总之一句话,sql注入就是绕过程序限制,让数据在数据库中执行。

二、概念

简单理解其原理后,来看一下枯燥的概念。

注入分为两大类,一个是数字型注入,一个是字符型注入。数字型注入一般都是url中带id的,像文章地址后就跟有id号,或者是商品地址等。我在网上找了一个网站的商品地址,后有id,跟了一个单引号后报错,敏感信息就不外露了,如下图:

可能原来查商品的sql语句是where id=38,加上单引号后变成了where id=38',这样语句有错误,便把错误信息返回了,这个信息属于有价值了,已经暴露了表名,sql语句和数据库类型。

像这种数字型的注入一般出现在php或者asp的网站中,因为他们属于弱类型语言,他们的机制会将变量的数据类型自动推导出来,在这块,强类型语言会更有优势。

字符型sql注入就是原理中说到的,它与数字型最大区别在于字符型一般都需要单引号去闭合。例如下图中登录,用的字符型注入,当然没有登录成功:


三、分类

主要是两大类一个字符一个数字。当然,往细了分也可以分出多种,下面简单理解一下:


数据分析咨询请扫描二维码

客服在线
立即咨询