【牛腩新闻发布系统】——SQL注入

来源:互联网 发布:node.js 编译 编辑:程序博客网 时间:2024/06/05 15:53

 

 定义:

       SQL注入攻击源于英文“SQL Injection Attack”(仅供参考)。目前还没有看到一种标准的定义。所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。

  SQL注入攻击特点:


       1、广泛性:SQL注入利用的SQL语法,因此只要是利用SQL语法的web应用程序如果为对输入的SQL语句做严格的处理都会存在SQL注入漏洞。
       2、技术难度不高:SQL注入技术公布后,网络上先后出现了多款SQL注入工具,技术难度可见一斑。
       3、危害性大:SQL注入攻击成功后,轻者只是更改网站首页等数据,重者通过网络渗透等攻击技术,可以获取公司或者企业机密数据信息,产生重大经济损失。

  SQL注入攻击实现过程:


       1、寻找SQL注入点:有参数传入的地方添加一些特殊字符,通过浏览器所返回的错误信息来判断是否存在SQL注入,如果返回错误,则表明程序未对输入的数据进行处理,绝大部分情况下都能进行注入。
       2、获取和验证SQL注入点 :找到SQL注入点以后,需要进行SQL注入点的判断。 
       3、获取信息:获取信息是SQL注入中一个关键的部分,SQL注入中首先需要判断存在注入点的数据库是否支持多句查询、子查询、数据库用户账号、数据库用户权限。 
       4、实施直接控制:如果实施注入攻击的数据库是SQL Server,且数据库用户为sa,则可以直接添加管理员账号、开放3389远程终端服务、生成文件等命令。 
       5、间接进行控制 :间接控制主要是指通过SQL注入点不能执行DOS等命令,只能进行数据字段内容的猜测。在Web应用程序中,为了方便用户的维护,一般都提供了后台管理功能,其后台管理验证用户和口令都会保存在数据库中,通过猜测可以获取这些内容,如果获取的是明文的口令,则可以通过后台中的上传等功能上传网页木马实施控制,如果口令是明文的,则可以通过暴力破解其密码。

几种SQL注入:


       1、猜测数据库名,备份数据库
       2、 猜解字段名称
       3、遍历系统的目录结构,分析结构并发现WEB虚拟目录
       4、设置新的数据库帐户

防止SQL注入:


       1、非参数化SQL与参数化SQL(常用),重构的时采用的方法。
       2、数据库权限控制,只给访问数据库的web应用功能所需的最低权限帐户。
       3、自定义错误信息,首先我们要屏蔽服务器的详细错误信息传到客户端。
       4、把危险的和不必要的存储过程删除
       6、存储过程

       最后附上一篇部分内容详细解释:
               http://www.cnblogs.com/heyuquan/archive/2012/10/31/2748577.html
0 0
原创粉丝点击