SQL注入漏洞

sql注入漏洞,简称注入攻击,sql注入,被广泛用于非法获取网站控制权,是发生在应用程序的数据库层上的安全漏洞。在设计程序忽略了对输入字符串中夹带的sql指令的检查,被数据库认为是正常的sql指令而运行,从而使数据库收到攻击,可能导致数据被窃取、更改、删除,以及进一步导致网站被嵌入恶意代码,被植入后门程序等危害。

DBMS:数据库

SQL语句分类:

1.DDL:数据定义语言,用来定义数据库对象创建、删除、修改库表结构。

2.DML:数据操作语言,用来定义数据库记录。增删改表记录。

3.DCL:数据控制语言,用来定义访问权限和安全级别。

4.DQL***** 数据查询语言。及其重要,用来查询数据。

1 数据库

*查看所有数据库:SHOW DATABASES
*创建数据库:CREATE DATABASE[IF NOT EXISTS]mydb1[CHARSET=utf8]
*切换(选择要操作的)数据库:USE数据库名
*删除数据库:DROP DATABASE[IF EXISTS]mydb1
*修改数据库编码:ALTER DATABASE mydb1 CHARACTER SET utf8

2数据类型

2.数据类型(列类型)int:整型
double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99;decimal:浮点型,在表单钱方面使用该类型,因为不会出现精度缺失问题;

char:固定长度字符串类型;char(255),数据的长度不足指定长度,补足到指定长度!”
char(255)1
varchar:可变长度字符串类型;varchar(2),zhangSan

text(clob):字符串类型;

3表控制

creat table 表名(
列名列类型,
列名列类型,
列名列类型
)

alter table 表名
modify列名 列新的类型
alter table表名
rename to 新名

修改数据

*UPDATE 表名 SET列名1=列值1,列名2=列值2.…[WHERE条件]
*条件(条件可选的):

条件必须是一个boolean类型的值或表达式:UPDATE t_person SET gender='男’age=age+1 WHERE sid='1;
运算符:=、l=、<>、>、<、>=、<=、BETWEEN.…AND、IN…)、IS NULL、NOT、OR、AND
WHEREage>=18 AND age<=80
WHERE age BETWEEN 18 AND 80
WHERE name=‘zhangSan’OR name=‘lisi’
WHERE name IN("zhangSan’,'liSi)
WHERE age IS NULL,不能使用等号
WHERE age IS NOT NULL

删除表

DELETE FROM 表名[WHERE 条件]

字符串类型只能使用单引号不能使用双引号

用户控制

1.创建用户

*CREATE USER 用户名@IP地址 IDENTIFIED BY 密码;
用户只能在指定的IP地址上登录
*CREATE USER用户名@”%’ IDENTIFIED BY 密码;
用户可以在任意IP地址上登录

2.给用户搜权

·GRANT 权限1,.…,权限n ON数据库.*TO用户名@IP地址
权限、用户、歇据库
给用户分派在指定的数据库上的指定的权限
例如:GRANT CREATE,ALTER,DROPRINSERT,UPDATE,DELETE,SELECT ON mydb1.*TO user1@localhost;
*给user1用户分派在mydb1数据库上的create,alter.drop、insert.update、delete.select权限
*GRANT ALL ON 数据库.*TO 用户名@IP地址:
给用户分派指定数据库上的所有权限

3.撤销授权

*REVOKE 权限1,…,权限n ON 数据库.*FROM 用户名@IP地址;
撤消指定用户在指定数据库上的指定权限
例如;REVOKE CREATE,ALTER,DROP ON mydb1.*FROM user1@localhost;
*撤消user1用户在mydb1数据库上的create、alter、drop权限

4.查看权限

*SHOW GRANTS FOR 用户名@IP地址 查看指定用户的权限

列运算

1数量类型的列可以做加、减、乘、除运算

SELECT sal*1.5 FROM emp;
SELECT sal+comm FROM emp;

2字符串类型可以做连续运牌

SELECT CONCAT(’$’,sal)FROM emp;

3转换NULL值

有时需要把NULL转换成其它值,例如com+1000时,如果com列存在NUL值,那么NULL+1000还是NULL,而我们这时希望把NULL当前0来运算。
SELECT IFNULL(comm,0)+1000 FROM emp:
->IFNULL(comm,0):如果comm中存在NULL值,那么当成0来运障。

4给列起别名

你也许已经注意到了,当使用列运算后,查询出的结果集中的列名称很不好看,这时我们需要给列名起个别名,这样在结果集中列名就显示别名了
SELECT IFNULL(comm,0)+1000 AS 奖金 FROM emp;一>其中AS可以省略

查询**************/*******

字符串匹配

SELECT * FROM emp WHERE ename LIKE ‘张%’;
->其中%匹配0~N个任意字符,所以上面语句查询的是姓张的所有员工。
SELECT * FROM emp WHERE ename LIKE '%阿%;
->干万不要认为上面语句是在查询姓名中间带有阿字的员工,因为%匹配0~N个字符,所以姓名以阿开头和结尾的员工也都会查询到。
SELECT * FROM emp WHERE ename LIKE ‘%’;
->这个条件等同于不存在,但如果姓名为NULL的查询不出来!

条件控制

1)条件查询

与前面介绍的UPDATE和DELETE语句一样,SELECT语句也可以使用WHERE子句来控制i
*SELECT empno,ename,sal,comm FROM emp WHERE sal >10000 AND comm
*SELECT empno,ename,sal FROM emp WHERE sal BETWEEN 20000 AND 30000
·SELECT empno,ename,job FROM emp WHERE job IN(经理,‘重事长);

2)模糊查询

当你想查询姓张,并且姓名一共两个字的员工时,这时就可以使用模糙查询
SELECT * FROM emp HERE ename LIKE '张_;
模糊查询需要使用运算符:LIKE,其中_匹配一个任意字符,注意,只匹配一个字符而
上面语句查询的是姓张,名字由两个字组成的员工,
SELECT * FROM emp WHERE ename LIKE ‘___’:/“姓名由3个字组成的员工*/
如果我们想查询姓张,名字是几个字都可以的员工时就要使用“%”了。

排序

1)升序

SELECT * FROM emp ORDER BY sal;
->按sal排序,升序,其中ASC是可以省略的

2)降序

SELECT * FROM WHERE emp ORDER BY comm DESC;
->按comm排序,降序!->其中DESC不能省略

3)使用多列作为排序条件

SELECT*FROM WHERE emp ORDER BY sal ASC,comm DESC;

使用sal升序排,如sal相同时,使用comm的降序排

纵向运算

1)COUNT SELECT(*) FROM emp;计算emp表中所有列都不为NULL的记录的行数

SELECT COUNT(comm)FROM emp;云计第emp表中comm列不为NULL的记录的行数

2)MAX SELECT MAX(sal)FROM emp;查询最高工资
3)MIN SELECT MIN(sal)FROM emp;查询最低工资
4)SUM SELECT SUM(Sal)FROM emp;查询工资合
5) AVG SELECT AVG(Sal)FROM emp:查询平均工资

SQL注入的条件

1、输入的数据是可控的

2、你输入的数据,是要被代入到数据库进行查询的

sql注入基础(一)相关推荐

  1. SQL注入 基础概述及相关知识

    SQL注入 基础概述及相关知识 SQL注入概述 SQL注入攻击简介 SQL注入攻击原理 SQL注入攻击来源 SQL注入攻击主要特点 SQL注入攻击危害 SQL注入攻击 SQL注入攻击基础概述 SQL注 ...

  2. SQL注入基础原理与案例(详细总结)

    SQL注入基础原理与案例 一.前言 二.漏洞概述及危害 1.漏洞概述 2.漏洞危害 3.漏洞防范 三.SQL注入 1.SQL注入方式 (1)信息收集 (2)数据注入 (3)高权限注入 2.判断是否存在 ...

  3. 学一点SQL注入基础

    文章目录 学一点SQL注入基础 思维导图 注入原理 MySQL三种注释 MySQL三种注入方式 联合查询注入 确定字段数 常规步骤 sqlmap的使用 跨库注入 MySQL注入获取最高权限-文件操作 ...

  4. SQL注入基础--判断闭合形式

    这里写自定义目录标题 ** **SQL注入基础--判断闭合形式** ## 1.整形闭合 2.单引号闭合 3.双引号闭合 总结 ** SQL注入基础–判断闭合形式 SQL语句的闭合形式大概如下几种: S ...

  5. 渗透测试之SQL注入基础

    渗透测试之SQL注入基础 SQL注入类型 按照数据类型类型来分类 按照执行效果来分类(页面回显效果) 按照数据提交的方式来分类 判断注入类型的方法 MySQL注入基础 联合查询注入 布尔注入 时间盲注 ...

  6. sql注入基础原理(SQL injection)

    sql注入基础原理 文章目录 sql注入基础原理 Sql注入简介 案例表 产生sql注入的写法 python 相关 java 相关 php 相关 sql注入相关技术 B: 基于布尔的盲注特征 案例 总 ...

  7. Wmm的学习日记(SQL注入基础)

    这周听了一节三个半小时的网课,有关sql注入,消除了我对sql注入的"恐惧",也算是浅浅入了下门吧,虽然学会了点皮毛,但是还是成就感满满,哈哈哈,从0到0.001也是一件值得庆祝的 ...

  8. SQL注入基础知识总结

    SQL注入-基础知识总结 1.注释符 1.1.Mysql中注释符有三种 1.2.总结 2.information_schema库 2.1.了解information_schema库 2.2.常用注入语 ...

  9. Sql注入基础原理介绍(超详细)

    一.Sql注入简介 Sql 注入攻击是通过将恶意的 Sql 查询或添加语句插入到应用的输入参数中,再在后台 Sql 服务器上解析执行进行的攻击,它目前黑客对数据库进行攻击的最常用手段之一. 二.Web ...

  10. web安全学习笔记--sql语句(sql注入基础上)

    一.基础知和表内操作语法 1.sql语句对大小写不敏感!!! SELECT - 从数据库表中获取数据:select * from (columns/tables/databases); UPDATE ...

最新文章

  1. linux 查看线程详细信息,Linux 下查看线程信息
  2. Linux内核初期内存管理---memblock(转)
  3. 一张图了解javaJwt
  4. SpringBoot实现注册时头像上传与下载
  5. 基本汇编语言学习结构
  6. 使用javamail 发送邮件
  7. 留住用户的APP弹窗设计素材模板
  8. ASP.NET验证控件详解
  9. 用户空间缺页异常pte_handle_fault()分析--(上)【转】
  10. 上海科技大学计算机研究生调剂,2021年上海科技大学考研招生调剂信息
  11. 计算机格式化为ntfs,u盘无法格式化成ntfs怎么办解决教程
  12. 计算机专业英语学术论文框架,计算机专业英语研究学术论文.pdf
  13. hdu-4747(线段树)
  14. puk码怎么查询_手机SIM卡PUK如何查询?怎么找PUK码?
  15. java实现用用户头像代替小程序码的logo(任意图片替换小程序码logo)
  16. Codeforces 1324 D. Pair of Topics(二分)
  17. ruby-下载图片,根据图片URL下载到本地
  18. 用一个小故事模拟Spring-Aop(三)--Advice适配器
  19. android 是否可触摸,android 2.0可能支持多点触摸?
  20. Matlab:连续按键、移动鼠标、鼠标点击、鼠标连点、输入字符,10行代码即可。

热门文章

  1. 团队管理18--员工激励
  2. 企业数字化基础设施技术简介
  3. IPSEC ×××连连看
  4. matlab输出波形自动找到波峰波谷,Matlab中利用findpeaks找波峰和波谷
  5. linux系统桌面文件消失,Ubuntu 更新文件 桌面 菜单丢失, 打算 换 mac os
  6. 《死亡诗社》中的经典台词
  7. linux SSD 寿命
  8. YTUOJ-HOMEWORK
  9. 计算机科学家尼.沃思,瑞士计算机科学家尼·沃思曾经说过,计算机科学就是研究_______的学问。...
  10. 热烈祝贺!蓝海创意云&姚建萍刺绣艺术虚拟直播合作圆满成功!