题目简介
-
题目名称:[极客大挑战 2019]EasySQL1
-
题目平台:BUUCTF
-
题目类型:Web
-
考察知识点:
-
SQL注入
解题步骤
1.首先启动并访问靶机,可以看到一个用户登录页面,怀疑SQL注入漏洞
2.随便输入一个用户名和密码,通过网址可以判断出该请求是get的方式
3.直接使用万能密码测试是否存在SQL注入漏洞:
username=admin'or'1=1&password=admin'or'1=1
4.成功获得flag:flag{df447ce1-6caf-4dc4-9bc2-692872739d81}
知识详解
一:SQL注入
我们来思考一下,为什么username=xxx'or'1=1&password=xxx'or'1=1
可以达到SQL注入,从而直接输出表内容的目的。
假设我们的表名叫t_user,username为用户名字段,password为密码字段,只有当用户名和密码字段都正确的时候才能输出该数据的内容
SELECT * FROM t_user WHERE username = 'xxx' AND password = "xxxx"
但是我们通过在xxx后面拼接一个'号来闭合username的值,然后通过or 1 = 1 使where的条件恒等于true,上面的SQL也就变成了
SELECT * FROM t_user WHERE username='xxx'or 1 = 1 AND password='xxx'or 1 = 1
从而可以查出所有的数据。
请登录之后再进行评论