SQL注入:MySql字符类型
字符类型
#长度不长
char 字符类型(长度固定)
varchar 可变长度字符类型(长度可变)
binary 二进制字符串
varbinary 可变长度二进制字符串
#字符长度很长
blob 保存二进制字符串
text 保存明文字符串
enum 枚举类型 多选一
set 集合类型 多选多
创建表并插入数据
mysql> create table str(
-> un1 char(3),
-> un2 varchar(3),
-> un3 binary(3),
-> un4 varbinary(3));
#mysql> create table str(un1 char(3),un2 varchar(3),un3 binary(3),un4 varbinary(3));
#正常数据插入
mysql> insert into str values('sss','sss','sss','sss');
字符串插入越界
mysql> insert into str values('sssssssssss','ssssssss','ssssss','ssssssss');
ERROR 1406 (22001): Data too long for column 'un1' at row 1
#多条报错,只显示一个错误 字段名称
mysql> show warnings;
+-------+------+-----------------------------------------+
| Level | Code | Message |
+-------+------+-----------------------------------------+
| Error | 1406 | Data too long for column 'un1' at row 1 |
+-------+------+-----------------------------------------+
类型转换错误
#空等于空为真,学生id不为0,及等号两边皆为真
mysql> select * from student where student_id=''='';
+------------+---------+------+------------+
| student_id | name | sex | birth |
+------------+---------+------+------------+
| 1 | xiaoli | 1 | 2020-01-01 |
| 22 | adsdasd | NULL | NULL |
+------------+---------+------+------------+
#警告中爆出该字段的所有信息
mysql> select * from student where !!name='admin';
Empty set, 3 warnings (0.00 sec)
mysql> show warnings;
+---------+------+---------------------------------------------+
| Level | Code | Message |
+---------+------+---------------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'xiaoli' |
| Warning | 1292 | Truncated incorrect DOUBLE value: 'admin' |
| Warning | 1292 | Truncated incorrect DOUBLE value: 'adsdasd' |
+---------+------+---------------------------------------------+
Text和Blob
Text:保存较大文本
Blob:保存较大二进制
存储型xss攻击
text类型最大的应用是留后门脚本注入到web服务器,其他字符类型因长度原因难以发挥。
集合|枚举类型
创建表并插入信息
mysql> create table s (
-> s set('1','2','3'),
-> e enum('w','r','t'));
#插入数据
mysql> insert into s values('3,2,1','t');
查询数据
mysql> select * from s where find_in_set('1',s);
+-------+------+
| s | e |
+-------+------+
| 1,2,3 | t |
+-------+------+