方法一:

就是按部就班地找报错、注入语句、在数据库中找flag:
标题显然在暗示存在sql注入漏洞:
1
存在字符型注入点。

接下来就是按照套路来注入了:

测试存在三个注入点;

爆数据库名的时候就出flag了。果然是easysql。

方法二:(万能密码)

这个方法时我在别人的博客上看到的:
如果只是要登录上去的话,只要想办法让后端对传过去的帐密检验的结果为true即可。稍微试一下就可以发现存在sql字符型注入漏洞,所以可以这么构造payload:

username=admin' or '1'='1&password=ps' or '1'='1

由于or的逻辑,对账号密码的判断将是一个恒真的值。顺利登入拿到flag.
flag

总结:

  • 注入未必要按部就班去爆数据库。注入也可以是一种绕过、getshell的手段。
  • 这里记一个踩过的坑:
    浏览器会自动把空格转为%20,这就导致我之前在写order by 3 --的时候被浏览器转义为‘......by%203%20--’,导致怎么也注不出来,一直报错。
    改成order+by+3+--就行了
posted on 2021-04-04 20:05  burningCrystal  阅读(197)  评论(0编辑  收藏  举报