SQL注入简介
结构化查询语言(Structured Query Language,缩写︰SQL),是一种特殊的编程语言,用于数据库中的标准数据查询语言。
SQL注入(SQL Injection)是一种常见的Web安全漏洞,主要形成的原因是在数据交互中,前端的数据传入到后台处理时,没有做严格的判断,导致其传入的“数据”拼接到SQL语句中后,被当作SQL语句的一部分执行。 从而导致数据库受损(被脱库、被删除、甚至整个服务器权限陷)。
sql注入在安全问题中排行第一
sql注入攻击是输入参数未经过滤,然后直接拼接到sql语句当中解析
sql注入是一种将sql代码添加到输入参数中,传递到服务器解析并执行的一种攻击手法
注入流程:由于关系型数据库系统,具有明显的库/表/列/内容结构层次,所以我们通过SQL注入漏洞获取数据库中信息的时候,也依据这样的顺序。首先获取库名,其次获取表名,然后获取列名,最后获取数据。
SQL注入原理
web应用程序在接收相关数据参数时未做好过滤,直接将其带入到数据库中查询,从而攻击者可以拼接执行构造的sql命令,导致了sql注入的发生。其成因可以归结外以下原因叠加造成的:
攻击者在页面提交恶意字符(例如单引号、空格、1=1等)
服务器未对提交参数进行过滤或过滤不足
攻击者利用拼接sql语句方式获取数据库敏感信息
SQL注入危害
攻击者利用SQL注入漏洞,可以获取数据库中的多种信息(例如︰管理员后台密码),从而脱取数据库中内容(脱库)。在特别情况下还可以修改数据库内容或者插入内容到数据库,如果数据库权限分配存在问题,或者数据库本身存在缺陷,那么攻击者可以通过SQL注入漏洞直接获取webshell(脚本木马,是通过服务器开放的端口获取服务器的某些权限)或者服务器系统权限
获取web网页数据库--数据泄露
用户数据被非法买卖
危害