SQL是怎么注入漏洞的

本篇内容介绍了“SQL是怎么注入漏洞的”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

本篇内容介绍了“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.站库分离


文章名称:SQL是怎么注入漏洞的
URL标题:http://ybzwz.com/article/cjcc.html