mysql函数

False注入,以及SQL注入技巧总结

拥有回忆 提交于 2019-12-03 13:51:53
title: False注入,以及SQL注入技巧总结 date: 2017-04-25 00:23:31 tags: ['SQL注入'] --- 利用False我们可以绕过一些特定的WAF以及一些未来不确定的因素,其中有些姿势之前了解但是没有去深入,这次做一个归纳总结。 原文首发在安全客,文章地址:http://bobao.360.cn/learning/detail/3804.html 有点可惜小编排版有些不是很完美。 0x01 False Injection 0 :引子 首先我们常见的注入 1=1 0<1 ''='' 这些都是基于1=1这样的值得比较的普通注入,下面来说说关于False注入,利用False我们可以绕过一些特定的WAF以及一些未来不确定的因素,其中有些姿势之前了解但是没有去深入,这次做一个归纳总结。 首先抛出这么一个问题 为什么username=0会导致返回数据呢? 这就是一个基于false注入的例子,下面在举一个例子 和上面是同一个表,但是为什么这里只返回了两组数据呢? 说到这里不得不说一说有关于MYSQL的隐式类型转换。 1:MYSQL隐式类型转换 关于 官方文档 中是这么说的 The following rules describe how conversion occurs for comparison operations: If one or both

在同一个window环境下安装多个MySQL服务

与世无争的帅哥 提交于 2019-12-03 10:50:02
第一个MySQL服务安装步骤参考:  https://www.cnblogs.com/qianshouxiuluo/p/11723404.html 1.将第一个安装的MySQL安装包复制出来,并重命名 2.修改my.ini的配置文件内容 [client] port = 3307 # 设置 MySQL 客户端默认字符集 default-character-set=utf8 [mysqld] #port 表示 mysql 端口 port=3307 # 服务端使用的字符集默认为 8 比特编码的 latinl 字符集 character-set-server=utf8 #安装目录 #basedir 表示 mysql 安装路径 basedir=D:\Studio\mysql-5.7.27.07 #datadir 表示 mysql 数据文件存储路径 datadir=D:\Studio\mysql-5.7.27.07\data # SQL_MODE排序group配置 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION # mysql默认数据库编码格式 default-storage-engine

MySql开发经验

≡放荡痞女 提交于 2019-12-03 10:29:12
1、wait_timeout   默认288800秒(8小时)。jdbc连接池maxWait或者maxldelTime这两个参数要小于这个值,否则,当你的连接长时间没和数据库交互,服务器早就把你的连接断开了,而你的连接池还认为是有效连接,除非你设置testOnBorrow或者设置testOnReturn设置为true,这样当连接每次从连接池中取出或者放回的时候检查一下连接是否有效,不过这样会牺牲一点性能。 2、再惊喜结果集合并(union或union all)时,如不需要进行结果去重,则必须使用union all,而不能使用union ;且尽量减少进行数据集去重。 3、用in代替or。sql语句中in包含的值不应过多,应少于300个;in是范围查找,mysql内部会对in的列表值进行排序后查找,比or效率更高。 4、禁止进行字段数据类型的隐式转换,所有转换必须进行明确的数据类型转换;隐式转换会导致字段上的索引失效,最常见的隐式类型转换常见于时间类型与字符串类型之间,建议所有时间类型字段在myBatis中均以时间类型传入,或者以字符串传入然后通过时间函数转换字符串为合法的时间格式,如下: select name from table where create = DATE_FORMATE('2010010101:02:03','%Y-%m-%d %H:%i:%s'); 5

MYSQL文件复制及备份

半世苍凉 提交于 2019-12-03 09:45:24
周末研究了下mysql的数据结构,记录下: 场景1:当从一台电脑的mysql的data中复制数据库的文件夹到另一台电脑上时会发现 表不存在,函数等也不存在 方法:1、需要将data根目录下的ibdata1一块复制,才能用navicat查看表结构    2、数据库的函数是存放在data\mysql下的proc.MYD中,所有要么复制文件,要么查找到相应的库把函数复制过去 场景2:数据库备份 方法:mysqldump -hlocalhost -uroot -p123456 database> E:\mysql-5.7.15-winx64\databack\database-%date:~0,4%%date:~5,2%%date:~8,2%.sql 说明:mysqldump -h服务器地址 -u用户名 -p密码 数据库名> 存放路径\数据库名-当前时间(yyyyMMdd).sql 问题:通过此方法不能备份函数 来源: https://www.cnblogs.com/xiufengd/p/11785986.html

数据库系统(五)---MySQL基础

怎甘沉沦 提交于 2019-12-03 09:37:31
一、SQL基本概念:   SQL 已经成为关系数据库的标准语言,是一种数据库查询和程序设计语言,用 于存取数据以及查询、更新和管理关系数据库系统。 功能不仅仅是查询,还包括数据定义、数据操纵和数据控制等于数据库有关的 一系列功能。   四大功能:数据查询、数据定义、数据操纵和数据控制。   1)嵌入式和动态 SQL 规则 规定了 SQL 语句在高级程序设计语言中使用的规范方法,以便适应较为复杂的 应用。   2)SQL 调用和会话规则 调用包括 SQL 例程和调用规则,以便提高 SQL 的灵活性、有效性、共享性以 及使 SQL 具有更多的高级语言的特征。   3)关系数据库系统支持三级模式结构,其模式、外模式和内模式中的基本对象有 数据库模式、表、索引、视图等。 SQL 标准提供的数据定义语句如下表:      二、MySQL 1、MySQL基础概念   MySQL 是一个关系数据库管理系统(RDBMS),它具有客户/服务器体系结构。 MySQL 中的 SQL 作为一种关系型数据库管理系统,遵循 SQL 标准,提供了对数据定义语言 DDL、数据操纵语言 DML、数据控制语言 DCL 的支持,同样支持关系数据库的三级模式结构。 MySQL 中一个关系对应一个基本表,一个或多个基本表对应一个存储文件,一 个表可以有若干索引,索引也存放在存储文件中。   MySQL 在 SQL

11.1 总结

痴心易碎 提交于 2019-12-03 07:49:14
上节课回顾: 索引: 索引的作用:提高查询效率,好比字典中的目录。 底层原理:B+树,索引本质上就是一个特殊文件。 索引的分类: 主键索引:加快查询速度+不能重复+不能为空 ```python 增加: 第一种方法: create table 表名( id int auto_increment primary key #主键自增id ) 注意:auto_increment 依赖primary key,而primary key不依赖auto_increment 第二种方法: alter table 表名 change 旧字段名 新字段名 数据类型 自增 主键; 第三种方法: alter table 表名 add 主键(字段名) 场景:一般是加在id这列 删除: 如果要删除带有auto_increment的primary key 需要提前删除auto_increment。 alter table 表名 drop 主键; ``` ``` ​ 唯一索引:加快查询速度+不能重复 ##增加: 第一种方法: create table 表名( id int auto_increment primary key, #主键自增id phone int not null default 0, name varchar(32) unique 索引名(phone字段名) ) 第二种方法: alter

mysql - 常用方法

烈酒焚心 提交于 2019-12-03 06:46:07
处理字符: 1:concat('aaa', 'bbb', 'ccc') 拼接字符串,oracle也有这个方法不过只能拼接2个,而且一般用 ‘||’ 。。 mysql中‘||’表示或。相当于or 2:ifnull(name,'aaa') 当name = null时,返回'aaa' 3.upper('aaa'),lower('AAA') 变为大写,小写 4.substr substr('abc张三', 1, 4) = abc张 从第一个字符开始,截取4位 substr('abc张三', 4) = 张三 从第4个字符开始截取到最后(字符包括汉字,每个汉字是一个字符) mysq的lindex是从1开始- -,比较搞。。。 5.length length('abc张三') = 9 length是字节长度,mysql汉字等于 3个字节,字母和符号时1个。 也挺搞的 - - 6.instr instr('aaa', 'abcaaabbbcccaaa') = 4 返回子串在父串第一次出现的位置,没有返回0 7.trim trim('a' from 'aaabbbaaabbbaaa') = 'bbbaaabbb' 去掉前后的a trim(' aaa ') = 'aaa' 去掉前后空格 8.lpad,rpad lpad('张三', 5, 'aaa') = aaa张三 左边填充aaa直到字符串有5个字符

mysql存储过程。。

亡梦爱人 提交于 2019-12-03 05:31:37
MySQL 5.0 版本开始支持存储过程。 存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。 存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。 存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。 优点 存储过程可封装,并隐藏复杂的商业逻辑。 存储过程可以回传值,并可以接受参数。 存储过程无法使用 SELECT 指令来运行,因为它是子程序,与查看表,数据表或用户定义函数不同。 存储过程可以用在数据检验,强制实行商业逻辑等。 缺点 存储过程,往往定制化于特定的数据库上,因为支持的编程语言不同。当切换到其他厂商的数据库系统时,需要重写原有的存储过程。 存储过程的性能调校与撰写,受限于各种数据库系统。 一、存储过程的创建和调用 存储过程就是具有名字的一段代码,用来完成一个特定的功能。 创建的存储过程保存在数据库的数据字典中。 创建存储过程 CREATE [ DEFINER = { user | CURRENT_USER }]   PROCEDURE sp_name ( [ proc_parameter [,...]] ) [ characteristic ...] routine_body proc_parameter : [ IN

1101 笔记

*爱你&永不变心* 提交于 2019-12-03 05:12:45
目录 1. 事务 为什么要使用 使用 特性 原子性 一致性 隔离性 持久性 2.存储引擎 InnoDB MYIsam 区别 3.视图 定义 增加视图 查看视图 删除视图 4.触发器 语法 增加触发器 查看触发器 删除触发器 5.存储过程 定义 优点 缺点 总结 语法 创建 使用 删除 6.函数 7.数据库备份 语法 1. 事务 mysql主要用于处理操作量大,复杂度高的数据,比如在人员管理系统 你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务! 在mysql中只有使用了InnoDB数据库引擎的数据库或表才支持事务 事务处理可以维护数据库的完整性,保证成批的sql语句要么全部执行,要么全部不执行 事务用来管理insert,update,delete语句 为什么要使用 很多时候一个数据操作,不是一个sql语句就完成的,可能有很多个sql语句,如果部分sql执行成功而部分sql执行失败将导致数据错乱 eg: 转账 == 转入转出均成功,才能认为操作成功 使用 开启事务: start transaction sql语句: 提交: commit 回滚: rollback // 影响所有,回滚到初始 start transaction; --开启事物,在这条语句之后的sql将处在同一事务,并不会立即修改数据库

mysql 存储过程

家住魔仙堡 提交于 2019-12-03 05:07:34
MySQL 存储过程 分类 编程技术 MySQL 5.0 版本开始支持存储过程。 存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。 存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。 存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。 优点 存储过程可封装,并隐藏复杂的商业逻辑。 存储过程可以回传值,并可以接受参数。 存储过程无法使用 SELECT 指令来运行,因为它是子程序,与查看表,数据表或用户定义函数不同。 存储过程可以用在数据检验,强制实行商业逻辑等。 缺点 存储过程,往往定制化于特定的数据库上,因为支持的编程语言不同。当切换到其他厂商的数据库系统时,需要重写原有的存储过程。 存储过程的性能调校与撰写,受限于各种数据库系统。 一、存储过程的创建和调用 存储过程就是具有名字的一段代码,用来完成一个特定的功能。 创建的存储过程保存在数据库的数据字典中。 来源: https://www.cnblogs.com/wzq-xf/p/11779270.html