SQL注入攻击
来源:互联网 发布:手机购物软件大全 编辑:程序博客网 时间:2024/06/03 19:00
SQL攻击(SQLinjection,中国大陆称作SQL注入攻击,台湾称作SQL资料隐码攻击),简称注入攻击,是发生于应用程序之数据库层的安全漏洞。简而言之,是在输入的字符串之中注入SQL指令,在设计不良的程序当中忽略了检查,那么这些注入进去的指令就会被数据库服务器误认为是正常的SQL指令而运行,因此遭到破坏。
原理
SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。
分类
平台层注入。由不安全的数据库配置或数据库平台的漏洞所致
代码层注入。主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。
SQL注入的产生原因
①不当的类型处理
②不安全的数据库配置
③不合理的查询集处理
④不当的错误处理
⑤转义字符处理不合适
⑥多个提交处理不当。
攻击
当应用程序使用输入内容来构造动态sql语句以访问数据库时,会发生sql注入攻击。如果代码使用存储过程,而这些存储过程作为包含未筛选的用户输入的字符串来传递,也会发生sql注入。sql注入可能导致攻击者使用应用程序登陆在数据库中执行命令。相关的SQL注入可以通过测试工具pangolin进行。如果应用程序使用特权过高的帐户连接到数据库,这种问题会变得很严重。在某些表单中,用户输入的内容直接用来构造动态sql命令,或者作为存储过程的输入参数,这些表单特别容易受到sql注入的攻击。而许多网站程序在编写时,没有对用户输入的合法性进行判断或者程序中本身的变量处理不当,使应用程序存在安全隐患。这样,用户就可以提交一段数据库查询的代码,根据程序返回的结果,获得一些敏感的信息或者控制整个服务器,于是sql注入就发生了。
影响
1、数据表中的数据外泄,例如个人机密数据,账户数据,密码等。
2、数据结构被黑客探知,得以做进一步攻击(例如SELECT* FROM sys.tables)。
3、数据库服务器被攻击,系统管理员账户被窜改(例如ALTERLOGIN sa WITH PASSWORD='xxxxxx')。
4、取得系统较高权限后,有可能得以在网页加入恶意链接以及XSS。
5、经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统(例如xp_cmdshell"net stop iisadmin"可停止服务器的IIS服务)。
6、破坏硬盘数据,瘫痪全系统(例如xp_cmdshell"FORMAT C:")。
防护
1.永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和
双"-"进行转换等。
2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。
3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。
4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。
5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装
6.sql注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用sql注入检测工具jsky,网站平台就有亿思网站安全平台检测工具。MDCSOFTSCAN等。采用MDCSOFT-IPS可以有效的防御SQL注入,XSS攻击等。
- 注入攻击--SQL注入
- 注入攻击之sql注入
- 跨站式SQL注入攻击
- SQL注入攻击总结
- 防SQL注入攻击
- SQL 注入式攻击
- SQL注入攻击尝试
- sql注入攻击
- sql注入攻击文章
- SQL注入防止攻击
- sql注入性攻击
- 防止sql注入攻击
- SQL注入攻击零距离
- sql注入攻击
- SQL注入攻击零距离
- SQL注入攻击零距离
- SQL注入攻击
- SQL注入攻击
- 嵌入式C语言不可不用的关键字
- JSP/Servlet基础——ServletMVC小例子
- win7(windows 7)系统下安装SQL2005(SQL Server 2005)图文教程
- Datediff函数 助你实现不同进制时间之间的运算
- IOS开发之UINavigationController详解
- SQL注入攻击
- MySQL一般配置信息
- Liferay开发1
- 嵌入式C语言之---模块化编程
- linklist模版函数分析,与实现
- 开源系统的2014:你该知道的Linux那些事
- 【网络协议】互联网协议入门(一)
- cocos2dx入门教程一CCTMXTiledMap和CCTileMapAtlas
- VS2013/2012 下无法打开 源 文件“stdafx.h”的解决方法