动态线条
动态线条end

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    |
+-------+------+
posted @ 2022-01-26 18:09  v1v1v1  阅读(89)  评论(0)    收藏  举报