sql注入基础(一)
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注入基础(一)相关推荐
- SQL注入 基础概述及相关知识
SQL注入 基础概述及相关知识 SQL注入概述 SQL注入攻击简介 SQL注入攻击原理 SQL注入攻击来源 SQL注入攻击主要特点 SQL注入攻击危害 SQL注入攻击 SQL注入攻击基础概述 SQL注 ...
- SQL注入基础原理与案例(详细总结)
SQL注入基础原理与案例 一.前言 二.漏洞概述及危害 1.漏洞概述 2.漏洞危害 3.漏洞防范 三.SQL注入 1.SQL注入方式 (1)信息收集 (2)数据注入 (3)高权限注入 2.判断是否存在 ...
- 学一点SQL注入基础
文章目录 学一点SQL注入基础 思维导图 注入原理 MySQL三种注释 MySQL三种注入方式 联合查询注入 确定字段数 常规步骤 sqlmap的使用 跨库注入 MySQL注入获取最高权限-文件操作 ...
- SQL注入基础--判断闭合形式
这里写自定义目录标题 ** **SQL注入基础--判断闭合形式** ## 1.整形闭合 2.单引号闭合 3.双引号闭合 总结 ** SQL注入基础–判断闭合形式 SQL语句的闭合形式大概如下几种: S ...
- 渗透测试之SQL注入基础
渗透测试之SQL注入基础 SQL注入类型 按照数据类型类型来分类 按照执行效果来分类(页面回显效果) 按照数据提交的方式来分类 判断注入类型的方法 MySQL注入基础 联合查询注入 布尔注入 时间盲注 ...
- sql注入基础原理(SQL injection)
sql注入基础原理 文章目录 sql注入基础原理 Sql注入简介 案例表 产生sql注入的写法 python 相关 java 相关 php 相关 sql注入相关技术 B: 基于布尔的盲注特征 案例 总 ...
- Wmm的学习日记(SQL注入基础)
这周听了一节三个半小时的网课,有关sql注入,消除了我对sql注入的"恐惧",也算是浅浅入了下门吧,虽然学会了点皮毛,但是还是成就感满满,哈哈哈,从0到0.001也是一件值得庆祝的 ...
- SQL注入基础知识总结
SQL注入-基础知识总结 1.注释符 1.1.Mysql中注释符有三种 1.2.总结 2.information_schema库 2.1.了解information_schema库 2.2.常用注入语 ...
- Sql注入基础原理介绍(超详细)
一.Sql注入简介 Sql 注入攻击是通过将恶意的 Sql 查询或添加语句插入到应用的输入参数中,再在后台 Sql 服务器上解析执行进行的攻击,它目前黑客对数据库进行攻击的最常用手段之一. 二.Web ...
- web安全学习笔记--sql语句(sql注入基础上)
一.基础知和表内操作语法 1.sql语句对大小写不敏感!!! SELECT - 从数据库表中获取数据:select * from (columns/tables/databases); UPDATE ...
最新文章
- linux 查看线程详细信息,Linux 下查看线程信息
- Linux内核初期内存管理---memblock(转)
- 一张图了解javaJwt
- SpringBoot实现注册时头像上传与下载
- 基本汇编语言学习结构
- 使用javamail 发送邮件
- 留住用户的APP弹窗设计素材模板
- ASP.NET验证控件详解
- 用户空间缺页异常pte_handle_fault()分析--(上)【转】
- 上海科技大学计算机研究生调剂,2021年上海科技大学考研招生调剂信息
- 计算机格式化为ntfs,u盘无法格式化成ntfs怎么办解决教程
- 计算机专业英语学术论文框架,计算机专业英语研究学术论文.pdf
- hdu-4747(线段树)
- puk码怎么查询_手机SIM卡PUK如何查询?怎么找PUK码?
- java实现用用户头像代替小程序码的logo(任意图片替换小程序码logo)
- Codeforces 1324 D. Pair of Topics(二分)
- ruby-下载图片,根据图片URL下载到本地
- 用一个小故事模拟Spring-Aop(三)--Advice适配器
- android 是否可触摸,android 2.0可能支持多点触摸?
- Matlab:连续按键、移动鼠标、鼠标点击、鼠标连点、输入字符,10行代码即可。
热门文章
- 团队管理18--员工激励
- 企业数字化基础设施技术简介
- IPSEC ×××连连看
- matlab输出波形自动找到波峰波谷,Matlab中利用findpeaks找波峰和波谷
- linux系统桌面文件消失,Ubuntu 更新文件 桌面 菜单丢失, 打算 换 mac os
- 《死亡诗社》中的经典台词
- linux SSD 寿命
- YTUOJ-HOMEWORK
- 计算机科学家尼.沃思,瑞士计算机科学家尼·沃思曾经说过,计算机科学就是研究_______的学问。...
- 热烈祝贺!蓝海创意云&姚建萍刺绣艺术虚拟直播合作圆满成功!