——login1(SKCTF)
Sql 约束攻击:
做个小实验
创建数据表:(用户名的长度设为25个字符)
插入数据,管理员用户名(admin)和密码(admin)
查询,一个不存在的用户,确定用户不存在,再把该用户插入
由于用户名最长设置为25,而插入的数据长度超过了25,所以后面的 ‘1’ 被截断,这时再查询表里的内容,发现有两个 ’admin‘ ,但是第二个 ’admin‘ 其实是 ‘admin ’
但使用select 语句时,查询内容(admin)后面的空格会被删除,所以会返回两条查询结果
有了这个漏洞,开始做题
思路:
向数据库插入(通过注册功能)一个和已存在用户同名的用户名,再用插入的用户名和密码登陆得到想要的东西。
猜已经存在的用户名,输入admin时得想要的东西
注册,不知道后端限制长度是多少,注册时多输入结果空格
用 ‘admin’ 和注册的密码登陆