您的位置:首页 > 数据库

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

2016-05-29 20:51 495 查看

定义:

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、存储过程

最后附上一篇部分内容详细解释:
/content/3815941.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: