码迷,mamicode.com
首页 > 数据库 > 详细

【SQL注入】初步讲解

时间:2015-05-18 21:16:13      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:sql   注入   信息安全   

一、sql注入是什么?

  如果我们百度一下sql注入是什么,那么会有很多种种解释,在这里,我们会用最直白最容易理解的语言来表述。

  简单来说,sql注入是通过正常浏览网页的方式对数据库进行攻击的过程,举个例子来说:数据库里面某个字段的值为一篇文章,其ID是1。那么我们在浏览一个url为:http://test.com/news.asp?id=1 时,则应用程序会去数据里面找这个ID为1的文章,然后呈现给我们。那么,我们如果在浏览器的地址栏ID=1的后面输入一个单引号,则会爆出数据库错误。那么,我们可初步判断此URL可能存在注入(注意:只能是可能,具体是否存在注入还需进一步判断)。 

  总结一下:sql注入的攻击方式一般是这样的:在所有的可以由用户输入的地方,尝试构造一个sql语句或者单引号、注释符等,来判断这个输入点是否是直接被程序带入了数据库查询。倘若直接带入了查询,页面会返回错误或者不正常的页面。由此来判断URL的参数(亦有可能是HTTP数据包的其他字段)是否存在注入。

  sql注入本身是通过URL来攻击数据库,并非是攻击的网站程序或操作系统。任何通过注入进行攻击的方式,部分只能针对于数据库进行攻击。只是在很多时候,可以利用数据库本身的特性来让我们获取一个webshell或者反向shell。    

  根据上面描述,sql注入的注入两个字,我们可以简单了解sql注入的注入是什么意思。那么,存在sql注入会导致什么样的危害产生呢?

  我们用一个比较抽象的小故事来理解sql注入攻击的过程:

首先,我们发现了某个URL在加了单引号之后,会报出数据库错误,那么此时我们可以通过简单的 and 1=1\ and 1=2 的方式判断是否带入的查询,如果and 1=1 返回的为正常页面,即表示此处参数直接带入的了查询,将我们输入的and 1=1 带入了sql语句当中;由于前面的语句为真,and 1=1 也为真,则整个sql语句结果为真,既返回了正常页面。 如果and 1=2 显示会有一定问题,或者直接爆出了错误页面,则表示在and 1=2 之后整条sql语句结果为假,使得页面显示存在问题。详细讲解看下图:

技术分享



   

本文出自 “汇哲信安知识分享” 博客,请务必保留此出处http://bjspisec.blog.51cto.com/10158489/1652240

【SQL注入】初步讲解

标签:sql   注入   信息安全   

原文地址:http://bjspisec.blog.51cto.com/10158489/1652240

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!