【牛腩新闻发布系统】——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
相关文章推荐
- Mysqlslap性能测试
- mysql 找不到或无法加载已注册的 .Net Framework Data Provider。
- 访问外部存储中的数据库文件,使用CursorAdapter显示在ListView组件上
- Oracle 逐条和批量插入数据方式对比
- Oracle server+instant client+PLsql Developer安装
- Centos 6.5 Redis 单机部署
- 数据库
- Redis 编译安装报错解决
- Centos 6.5 Redis 集群部署
- 数据库2
- 数据库1
- SQL注入与PreparedStatement接口
- 数据库订单表状态字段值设计的一些思考
- 基于Redis实现分布式锁
- SQL 函数
- SQLite学习笔记三:SQLite可视化管理工具汇总
- mysql5.6 单机多实例
- beego访问数据库
- Oracle Shared Server 和Oracle Dedicated Server的使用和配置
- Oracle Dedicated server&shared server