实验吧 登陆一下好吗?
根据题目描述,我们知道这是一个SQL注入的题目
观察首页之后,我并没有在url中发现注入点,尝试在用户名和密码的地方猜解,尝试用户名admin ,root ,等等
尝试密码:123 ,00000,等等。
但是回显只有一个,就是没有此用户名和密码。。。。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/74c21625033f51121fbf013b8c265dd1.png)
那就用SQL注入的方式吧
因为之前没有见过,所以上百度查了一下wp
根据wp,我成功解出了这道题
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/d3d3e8856093dc5de3a64af3dfe10f6b.png)
那么解题原理是什么呢?
大佬们猜测这个题目查询的语句是
union select * from user where username=' ' and password=' '
然后我们想要获得成功,那么得到的结果应该是
uniom select * from user where 1 and 1
这样子的话,1=1是成立的,所以检测也就通过了
怎么才能让1=1呢?
我们根据上面的猜测来构造一个sql语句
接下来,我利用了一个“错误的错误就是正确”的方式来构造了一个SQL语句
我输入用户名和密码都是 ‘=’
当我输入这个之后,带入数据库查询的语句就是:
union select * from user where username='‘=’' and password='‘=’'
根据SQL语句的识别方式,我们得到如下结论:
username=''
带入数据库中查询,结果是 false=
然后再拼接后面的SQL语句带入查询 false=''
,结果是 ture
也就是 1
同理,password也是这样的原理,通过这种方式,我就能绕过检测,得到flag!