漏洞一:SQL注入知识点

1.1 SQL注入漏洞简介

        SQL注入是指Web应用程序对用户输入数据的合法性没有判断,前端传入后端的参数是攻击者可控的,并且参数被带入数据库查询,攻击者可以通过构造不同的SQL语句来时间对数据库的任意操作。

        一般情况下,开发人员可以使用动态SQL语句创建通用、灵活的应用。动态SQL语句实在执行过程中构造的,它根据不同的条件产生不同的SQL语句。当开发人员在运行过程中根据不同的查询标准决定提取什么字段(如select),或者根据不同的条件选择不同的查询表的时候,动态地构造SQL语句会非常有用。

        以PHP语句为例,命令如下: 

$query = "SELECT * FROM USERS WHERE id = $_GET['id']";

由于这里的参数ID可控,且被带入数据库查询,使用非法用法可以任意拼接SQL语句进行攻击。

当然,sql注入按照不同的分类方法可以分为很多种,如报错注入、盲注、Union注入等。

1.2 SQL注入漏洞原理 

        SQL注入漏洞的产生需要满足以下两个条件。

        ① 参数用户可控: 前端传给后端的参数内容是用户可以控制的。

        ② 参数被带入数据库查询: 传入的参数被拼接到SQL语句中,且被带入数据库查询

1.3 MySQL中与SQL注入漏洞相关的知识点

       在详细介绍SQL注入漏洞前,先介绍MySQL中与SQL注入漏洞相关的知识点。

       在MySQL 5.0版本之后,MySQL默认在数据库中存放一个名为"information_schema"的数据库。在该库中,读者需要记住三个表名,分别是SCHEMATA、TABLES和COLUMNS.

        SCHEMATAB表存储该用户创建的所有数据库的库名

        TABLES表存储该用户创建的所有数据库的库名和表名

        columns表存储该用户创建的所有数据库的库名,表名和字段名

1.4: Union注入攻击 

1.5: Union注入代码分析 

1.6: Boolean注入攻击 

1.7: Boolean注入代码分析

1.8: 报错注入攻击 

1.9: 报错注入代码分析

SQL注入漏洞进阶

2.1: 时间注入分析 

2.2: 时间注入代码分析 

2.3: 堆叠查询注入攻击 

2.4: 堆叠查询注入代码分析 

2.5: 二次注入攻击 

2.6: 二次注入代码分析 

2.7: 宽字节注入攻击 

2.8: 宽字节注入代码分析

2.9: Cookie注入攻击

2.10: Cookie注入代码分析

2.11: Base64注入攻击  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值