首页 > 技术文章 > bugku-login1

c0d1 2021-06-16 16:19 原文

根据题目给的提示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

 

推荐阅读