美文网首页
web安全之sql注入漏洞

web安全之sql注入漏洞

作者: 无远弗届_90 | 来源:发表于2019-03-04 14:41 被阅读0次

概念

通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。通俗地讲,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。

注入流程简介

注入流程
  • 寻找注入点,构建特殊的数据库查询语句

    系统页面可注入参数的地方一般有如下几个方面:

    1. Get参数触发SQL注入

    2. POST参数触发SQL注入

    3. Cookie触发SQL注入

    4. 其他参与SQL执行的输入都有可能进行SQL注入

  • 数据库引擎执行拼接后的SQL语句

    一旦参数被拼接成一个完整的SQL语句,数据库引擎就会执行SQL语句。

  • 数据库返回信息

    被执行后的SQL语句通过数据库引擎返回给服务端(浏览器等)。

  • 获取数据库相关信息

    攻击者利用注入的SQL语句,获取想要获取的信息。

  • 入侵破坏

    一旦获取到核心数据,攻击者就有可能参与一系列的入侵破坏,如:

    1. 页面篡改

    2. 网站挂马

    3. 修改后台数据等。

原理

首先来看一下下面这样一个SQL语句:

"select username,password from user where username = '"+username+"'and password = '"+password+"'"

此SQL语句是根据用户名和密码来从数据库中获取记录,有用户名和密码作为双重验证。如果此时没有对用户输入的username加以判断和字符过滤,将username输入成如下字符:

admin‘ #

那么此时拼接后的完整SQL语句将变为如下形式:

"select username,password from user where username = 'admin' #'and password = '123456'"

我们知道,在MySQL中,#是注释的意思,这样对password的限制就彻底失效了,只要数据库中有admin这条记录,数据库就会有数据返回。这样就背离了我们想要执行目标SQL语句的初衷。这就是典型的SQL注入。简单来说,构成SQL注入漏洞的条件有二:

  • 控制输入

    用户能够控制输入,系统没有对输入做判断和限制,信任用户所有的输入。

  • 拼接SQL

    将用户输入的参数拼接成了一个完整的SQL语句。

场景

进行SQL注入的场景很多,一切用户可控输入的地方,都有可能造成SQL注入。

场景

危害

SQL注入漏洞常见且危害性大,具体表现为:

  • 绕过登录验证

    使用万能密码登录网站后台等

  • 获取敏感数据

    获取网站管理员帐号、密码等

  • 文件系统操作

    列目录,读取、写入文件等

  • 注册表操作

    读取、写入、删除注册表等

  • 执行系统命令

    远程执行命令

防御措施

  • 使用预编译,绑定变量(推荐)。

  • 检查数据类型。

  • 过滤特殊字符和语句。

  • 页面不错误回显。

相关文章

  • Web安全之SQL注入漏洞[1]

    Web安全之SQL注入漏洞 本节知识点 SQL注入原理 前言 结构化查询语句(Structured Query L...

  • web安全测试(2)

    本章主要介绍常见web安全漏洞。 一、SQL注入 SQL注入(SQL Injection),是最常见影响非常广泛的...

  • SQL 注入

    什么是SQL注入 SQL注入攻击(SQL Injection),简称注入攻击,是Web开发中最常见的一种安全漏洞。...

  • 关于SQL注入与避免

    什么是SQL注入 SQL注入攻击(SQL Injection),简称注入攻击,是Web开发中最常见的一种安全漏洞。...

  • 避免SQL注入

    什么是SQL注入 SQL注入攻击(SQL Injection),简称注入攻击,是Web开发中最常见的一种安全漏洞。...

  • web安全之sql注入漏洞

    概念 通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令...

  • SQL注入

    概念 SQL注入攻击(SQL Injection),简称注入攻击,是Web开发中最常见的一种安全漏洞。可以用它来从...

  • web安全之SQL注入

    2018/07/06 23:41 慕课网web安全之SQ之注入课程学习笔记 什么是SQL注入? 如何寻找SQL注入...

  • 要注意了!这样使用MyBatis框架,被攻击了!

    前言 SQL注入漏洞作为WEB安全的最常见的漏洞之一,在java中随着预编译与各种ORM框架的使用,注入问题也越来...

  • web安全及防御 - SQL注入漏洞

    SQL注入漏洞(SQL injection)是Web层面最高危的漏洞之一。在2008年至2010年期间,SQL注入...

网友评论

      本文标题:web安全之sql注入漏洞

      本文链接:https://www.haomeiwen.com/subject/ajxiuqtx.html