提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
记录约束SQL攻击
提示:以下是本篇文章正文内容,下面案例可供参考
一、SQL约束攻击是什么?
在SQL中执行字符串处理时,字符串末尾的空格符将会被删除。如“admin”等同于“admin ”(admin后有一个空格)。
当你查询在数据库中使用查询语句时
SELECT * FROM users WHERE username='admin';
SELECT * FROM users WHERE username='admin ';
其实这两个查询结果是一样的,
可能到这里还是没有懂什么是约束呢;其实在我们INSERT查询中,如果字段定义为varchar(n)类型来限制字符串的最大长度,那么如果我限制的varchar(20),那么如果我超过了20个字符比如输入了25个字符查询就直接截取前20个字符
二、例题
1.题目
链接:为bugku里的login1
出现这个界面并没有账号,所以先注册一个
当我们用在自己的账号查看时可以看到
我们可以看出必须要是管理员才能进去,所以我们就可以想到管理员admin
在题目中提示了这个是约束攻击
这里我们就注册一个admin(中间有很多空格)1这就是一个账号
因为我知道这个账户肯定有一个限制;如果超出了这个限制那么就会直截取前面规定多少位的限制;而加空格就会让它直接识别进入==admin,之后再输入admin(中间很多空格)1的密码就可获得flag
总结
例如:以上就是今天要讲的内容,本文简单的介绍了基于SQL的约束攻击以及例题,第一次写文章有点不熟练望指正