bugku login1(SKCTF)

分析

根据提示,了解一下sql约束攻击参考资料
总结:
1、sql处理字符串时(一般是在比较字符串时),会自动删去末尾多余的空格,这是因为,SQL会在内部使用空格来填充字符串,以便在比较之前使其它们的长度保持一致。这一点,对于where和insert语句是成立的,对于like语句无效。
也就是说,"admin"和"admin "是等效的。因此,用where id="admin"查询和用where id="admin "查询的结果相同。
2、SQL中varchar(n)用于限制最大长度,若字符串长度大于n,则只截取前n个字符。如果用varchar(5)限制了insert查询的最大长度,则插入
"admin"和"admin “,最终都会得到"admin”,因此查询"admin "得到的结果是"admin"的信息。

因此,
可以利用这个漏洞来绕过,方法:若注册时已知admin这个用户名存在,则我们可以注册admin(空格空格空格…)这个用户名,密码自定,然后登录时用刚刚注册的用户名和密码即可得到真实的想要的admin信息或权限。

解题

注册admin发现这个用户名存在,则注册admin(后面跟三个空格),再登录即可得到flag。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值