今天这个题目很简单,但我还是做了好久。有一些payload之前试了没成功后面再试又可以了,搞得我也很疑惑,不知道自己是不是之前引号没打对还是空格没打对。
进入正题:
[极客大挑战 2019]EasySQL
题目就告诉我们了是要SQL注入
在用户名和密码分别输入admin’,password,报错显示如下
admin,password’,报错显示如下
admin’,password’,报错显示如下
结合三种情况来看,username的闭合符号是单引号,password的闭合符号也是单引号
双引号。或者再用admin'#
和password"#
没有报错再确认一下也可以。
那么这里用万能密码就可以成功注入了,admin' or '1'='1
和 password' or '1'='1
或者直接用户名一栏输入admin' or '1'='1 #
,密码一栏随意
但这里有让我疑惑的地方:既然password是双引号,为什么用单引号注入能成功。我的想法是password=’ ‘password’or’1’=‘1’ ',双引号里的一个单引号组成了里面的语句,使其值为true,外面一个单引号给password赋值。不知道我都这个想法对不对,请大家指正。
(这里是我才疏学浅了,报错显示的部分本身就会有一对单引号来引用错误内容,所以password的闭合符号也是单引号)