(长期更新)记录问题--从底层原理解释

71 阅读1分钟

一.MySql中的待解决问题

1.问题来源[自学web安全day09--SQL注入--(基础04)报错注入 - 掘金 (juejin.cn)] (juejin.cn/post/735132…)

2.问题描述

  • 表名为people,
  • 表中一个字段名为ch_name
  • 用floor虚拟表主键报错方法获取ch_name的数据
  • 想知道:字段的数据类型长度与主键报错问题是否显示的关系

发现:当把ch_name的数据类型设置为var(数字小于等于236)时,利用该语句可以显示报错,

但是当把ch_name的数据类型设置为var(数字大于236)时,利用该语句不会显示报错。

不明白为什么会这样,这一点可以用于该注入类型漏洞的防护

相比之下,phone字段是int型,设置为int(255),即使数字255大于236但是仍然会报错,不知道原因为啥

也就是说,此类主键报错语句比较针对数据类型及数据类型的长度,在防护层面可以多考虑这一点

我这里的数据库版本为5.5.53

image.png

image.png

image.png