第三关:
刚进入此关卡,可以看到,显示提示让我们将"id"作为参数输入,并输入数字值
然而,没有找到输入框或搜索框,怎么办呢,我们可以在url地址栏中输入代码。
那么我们进行尝试输入 ?id=1 ---?用于传参
可以看到,系统显示出了两个数据:用户名"dumb"和密码"dumb"
这就说明,此网页是从前端获取数据后,在后端数据库中通过id的值取出对应的登录名和密码信息,说明这是一个动态页面,也就是说,可以进行sql注入。
那么,接下来我们来看看这个页面是否存在sql注入的漏洞。
假设后端的代码例如这样:
select login_name,password from users where id='$id'
我们尝试输入?id=1'-- -,
---------------在输入时注意切换为英文输入法,后端会识别英文与中文的符号--------------------
如果后端代码中参数用' '包裹起来,那么这样会闭合前面的包裹,并且用-- -注释掉后面的代码,
如果没有报错,那么说明系统的参数确实使用' '两个单引号将参数包裹起来了;
如果报错,说明后端代码中没有用两个单引号将参数包裹。
可以看到,报错了,并且提示是sql语句语法错误,说明后端没有用两个单引号将参数包裹
----------注意:在url栏中,单引号会被转义成%27,空格会转义成%20---------------
##在第一关中,数据是用两个单引号将参数包裹的
接下来