SQL注入讲课准备

一.基本函数

登录MYSQL方式:在cmd命令行中输入 mysql -h+ 服务器 -u +数据库用户名 -p+密码
或者直接在phpstudy中打开Mysql命令行输入password
ps:注意在语句后要加分号!!!

  1. 打开所有数据库show databases;在这里插入图片描述

  2. 使用其中的某个数据库 use security(库名); 显示badatase changed

  3. 打开所有表 show tables;在这里插入图片描述

  4. 查询其中某个表的信息在这里插入图片描述

  5. 查库: select schema_name from information_schema,schemata在这里插入图片描述
    万能语句相当于之前的show databases

6**. 查表**:select table_name from information_schema.tables where table_schema=‘security’;在这里插入图片描述

  1. 查列:select column_name from information_schema.columns where table_name=‘users’;在这里插入图片描述

  2. **查字段:**select username,password from security.users;在这里插入图片描述

  3. limit 的用法: limit m,n;其中m指的是记录开始的位置,从m=0开始,表示第一条记录;n是指取几条记录在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  4. select与where搭配使用:表示限定在这里插入图片描述
    在这里插入图片描述

  5. order by 的使用:排序
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

  1. group by 的使用:本质其实也是排序在这里插入图片描述

  2. 模糊查询在这里插入图片描述
    variables :环境变量
    查询带有”secure"的环境变量

  3. 联合查询:union 在这里插入图片描述

  4. as封装在这里插入图片描述
    在这里插入图片描述

  5. length(str) :返回给定字符串的长度,如length(“string”)=6

  6. substr(string,start,length):对于给定字符串string,从start位开始截取,截取length长度,如substr(“chinese”,3,2)=“in”在这里插入图片描述

  7. concat(username):将查询到的username连在一起,默认用逗号分隔在这里插入图片描述

  8. group_concat(username):将username数据查询后连接在一起,用逗号连接在这里插入图片描述

10.concat_ws(‘~’,A,B):A ~B 在这里插入图片描述
在这里插入图片描述
right
在这里插入图片描述
ascii
在这里插入图片描述
if:判断
sleep:时间延时

二.原理

sql注入攻击是通过将恶意的sql查询或添加语句插入到应用的输入参数中,再在后台sql服务器上解析执行进行的攻击

三.分类

按注入点类型分类

  1. 数字型注入点 原型:select * from 表名where id=1
  2. 字符型注入点 原型:select * from 表名 where name=“admin”
  3. 搜索型注入点 原型:select * from +表名where 字段 ‘%关键字%’

按数据提交的方式分类

  1. GET 注入 提交数据方式为GET,注入点的位置在GE参数部分
  2. POST注入 注入点位置在POST数据部分
  3. Cookie注入 HTTP请求的时候会带上客户端的cookie,注入点在cookie当中的某个字段中
  4. HTTP头部注入 注入点在HTTP请求头部的某个字段中

按执行效果分类

  1. 基于布尔的盲注 即可以根据返回值页面判断条件真假的注入
  2. 基于时间的盲注 即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行来判断
  3. 基于报错注入 即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中
  4. 基于数字型注入
  5. 联合查询注入 使用union 的情况下的注入
  6. 堆查询注入 可以同时执行多条语句的执行时的注入
  7. 宽字节注入
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

四.防御

  1. 分级管理,对用户进行分级管理,严格控制用户的权限
  2. 在书写SQL语言是,禁止将变量直接写入到SQL语句中,必须通过设置相应的参数来传递相关的变量
  3. 基础过滤和二次过滤
    SQL注入攻击前,入侵者通过修改参数提交**“and”等特殊字符,判断是否存在漏洞,然后通过select、update等各种字符编写SQL注入语句。在具体检查输入或提交的变量时,对于单引号、双引号、冒号**等字符进行转换或者过滤,从而有效防止SQL注入
  4. 通过使用静态和动态测试,定期检查并发现应用程序中的SQL注入漏洞
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值