bugku-login1
根据题目给的提示sql约束攻击
百度了一下,说说自己的理解
约束SQL注入的原理就是利用的约束条件,在SQL中执行字符串处理时,字符串末尾的空格符将会被删除。
就是“test”等同于“test ”
SELECT * FROM users WHERE username='test '; SELECT * FROM users WHERE username='test';
这两个语句的查询结果就是一样的
还有一种是在所有的INSERT查询中,SQL都会根据varchar(n)来限制字符串的最大长度。
当输入的字符串大于n个字符的话,只会使用前n个字符
如n=4时,插入的字符串“woshint”的时候只会插入“wosh”,保存在数据库的也是“wosh”
利用这些约束就可以来进行攻击了
接下来回到题目中来
随便注册下
用admin注册时就会显示已存在
但是使用1注册时
注册两次都是显示注册成功
那么题目的突破点就是在这个admin上
联想到约束sql注入
将注册的用户名改为admin加n个空格试试
果然
登录试试
得到flag