1.字符类型

字符类型包括:char,varchar,binary,varbinary,blob,text,enum,set### 2.Char和varchar, Binary和varbinary 1.保存少量字符串时使用 Char固定长度字符串 Varchar变长字符串

2.保存少量二进制字符串时使用 Binary固定长度二进制字符串 Varbinary可变长度二进制字符串

Create table testa(uname char(10),idcard varchar(10),login binary(10),pic varbinary(10)) Insert into testa values(‘abc’,’bdc’,’abc’,’bcd’)#### 3.字符类型越界报错 insert into testc values(‘abcdef’,’abcdef’,’x012345’,’x012345’); Query OK, 1 row affected, 4 warnings (0.01 sec)

越界报错的目标是得到字段名,进而推测字段名涵义和表的功能 mysql> show warnings; +————-+———+—————————————————————-+ | Level | Code | Message | +————-+———+—————————————————————-+ | Warning | 1265 | Data truncated for column ‘uida’ at row 1 | | Warning | 1265 | Data truncated for column ‘uidb’ at row 1 | | Warning | 1265 | Data truncated for column ‘uidc’ at row 1 | | Warning | 1265 | Data truncated for column ‘uidd’ at row 1 | +————-+———+—————————————————————-+ 4 rows in set (0.00 sec)

4.类型转换报错

select from users where uname=’‘=’’; select from users where !!uname=’admin’;

目标:(1)获得字段具体值,如密码,用户名字段值。 (2)获得该表的所有记录 (3)进而推测字段涵义,表功能等 mysql> show warnings; +————-+———+———————————————————————-+ | Level | Code | Message | +————-+———+———————————————————————-+ | Warning | 1292 | Truncated incorrect DOUBLE value: ‘admin’ | | Warning | 1292 | Truncated incorrect DOUBLE value: ‘Chirstian’ | | Warning | 1292 | Truncated incorrect DOUBLE value: ‘Anneke’ | | Warning | 1292 | Truncated incorrect DOUBLE value: ‘Tzvetan’ | | Warning | 1292 | Truncated incorrect DOUBLE value: ‘Saniya’ | +————-+———+———————————————————————-+ 5 rows in set (0.00 sec)#### 5.Text和blob Text 保存较大文本时 Blob保存较大的二进制数据时使用

Text类型最大的应用是留后门脚本注入到web服务器,其它字符类型因长度原因难以发挥。

Insert into testc(blog) values( ‘‘)#### 6.enum和set Enum:枚举类型,值只能是enum中的一个。 Set:集合类型,值可以是set中的任意个。

Find_in_set()在盲注中的应用: Select from users where uname=’$uname’ and find_in_set(left(uname,1) ,’a,b,c’)=1 Select from users where uname=’$uname’ and find_in_set(left(version(),1) , ‘1,2,3,4,5,6’)>1