因ID字段可控、ID字段自增长导致的安全问题
2019-10-15 10:18:52 Author: xz.aliyun.com(查看原文) 阅读量:210 收藏

今天做测试的时候遇到一个添加收获地址的时候发现收货地址的ID参数是可控的。一般叫ID参数的都为自增长的主键。
然后我就把ID参数值设置的特别大。返回结果也提示新增地址成功。(原图丢失了,下图以自己的数据库模仿一下。)


查看插入的数据,id并不是插入的多个99999,而是16777215 ,也就是2的24次方-1,可能是id字段的长度是24,当我们设置的ID参数值超过了16777215,数据库会自动将ID值设置为16777215。也就是能支持的最大的ID值。

然后不指定id参数插入数据的时候,会因为自增长、和超过id最大值时会自动设置为16777215的问题导致id值不唯一,导致插入数据失败。


这样就导致了普通用户再添加收货地址就再也添加不上了。

另外将插入的ID值为16777215的数据删掉之后,还是不能正常添加收获地址的,需要修改一下自增长的起始值才能正常添加。

将值删掉之后,再次添加数据,


添加成功了,但添加的ID参数值是最大的,所以下一次添加时,又会失败

先将最大的ID值数据删除,然后修改一下id的起始值。


alter TABLE qqadmin auto_increment =1;


然后再执行插入语句就正常了,

不知道各位大佬怎么看。


文章来源: http://xz.aliyun.com/t/6510
如有侵权请联系:admin#unsafe.sh