基于约束的SQL注入

首先先在mysql中创建一张用户表

基于约束的SQL注入
这里设置了 id, name , password 三个字段,并且用户名限制为20个字符以内
那么如何实现基于约束的SQL注入呢,我们通过一个简单的实验来验证下。
基于约束的SQL注入
基于约束的SQL注入基于约束的SQL注入
可以看到我们插入的语句是可以查询到的,这里有一个问题就是因为我们在前面限制了插入的字符串的长度,所以超出的部分是没有办法插入数据库的,所以如果插入一条的用户名为‘admin 很多空格 1’,那么对于数据库而言中间的空格被忽略掉了,而且整个串的长度超过了限制的20,所以多的部分被截断,那么我们就可以用这个刚创建的用户登陆admin账户。

这里看一道题
基于约束的SQL注入
这里首先随便注册一个账号后,发现只有管理员才可以拿到flag
基于约束的SQL注入
一般的管理员id都是admin,所以这里使用‘admin 1’来注册,这里的空格尽量多打一些,最终成功拿到了flag
基于约束的SQL注入