重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本篇内容介绍了“SQL是怎么注入漏洞的”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
SQL注入前言
成都创新互联公司长期为上1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为伍家岗企业提供专业的成都做网站、成都网站建设,伍家岗网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。
结构化查询语句(Structured Query Language,缩写:SQL),是一种特殊的编程语言,用于数据库中的标准数据库查询语言。
SQL注入(SQL Injection)是一种常见的Web安全漏洞,攻击者利用这个问题,可以访问或者修改数据,或者利用潜在的数据库漏洞进行攻击。什么是SQL注入?
SQL注入(SQL Injectiob)是一种将sql语句插入或者添加到应用(用户)的输入参数中的攻击,之后再将这些参数传递给后台的SQL加以解析并执行。常见的Web架构
表示层:Web浏览器/呈现引擎---访问网站
逻辑层:脚本语言:ASP、PHP、JSP、.NET等---加载、编译并执行脚本文件
存储层:数据库:MSSQL、、PRACLE等---执行SQL语句哪里存在SQL注入?
GEI
POST
HTTP头部注入
Cookie注入
......
任何客户端可控,传递到服务器的变量。也就是能与数据库交互的地方。漏洞原理
针对SQL注入的攻击行为,可描述为通过用户可控参数中注入SQL语法,破坏原有的SQL结构,达到编写程序时意料之外的结果的攻击行为。
其原因可以归结为以下两点原因叠加造成的:
1.程序编写者在处理程序和数据库交互的时候,使用字符拼接的方法构造SQL语句
2.未对用户可控参数进行足够的过滤便将参数内容拼接进入到SQL语句中SQL注入的危害漏洞危害
攻击者利用SQL注入漏洞,可以获取数据库中的多种信息(例如:管理员后台密账号、码),从而窃取数据库中的数据。
在特别的情况下,还可以修改数据库内容或者插入内容到数据库。
如果数据库权限分配存在问题,或者数据库本身存在缺陷,那么攻击者通过SQL注入漏洞直接获取webshell或者服务器系统权限。SQL注入的分类和利用根据SQL数据类型分类
整型注入
字符串型注入根据注入的语法分类
显注:
UNION query SQL Injection(可联合查询注入)
Error-based SQL Injection(报错型注入)
盲注:
Boolean-based bind SQL Injection(布尔型注入)
Time-based bind SQL Injection(基于时间延迟注入)
Stacked queries SQL Injection(可多语句查询注入)My SQL注入相关语句
查询当前数据库版本:select version();
查询当前数据库:select database();
查询当前路径:select @@basedir;
查询当前数据库用户:select user();
查询当前My SQL路径:select @@datadir;
查询服务器的系统版本:select@@Version_compole_os
查询数据库:select schema_name from information_schema.schemata;
查询表名:select table_name from information_schema.tables where table_schema='库名' ;
查询列名:select column_name from information_schema.columns where table_schema='库名' and table_name='表名' ;sql注入修复
1.正则过滤特殊字符,PDO预编译
2.web应用防火墙
3.站库分离