sqli-labs环境安装

下载地址:https://github.com/Audi-1/sqli-labs
同时需要安装phpstudy

开始前遇到的问题

sqli-labs新手学习笔记(持续更新)
启动phpstudy,发现apache服务可以正常启动,但MySQL就不行。但是打开任务管理器发现MySQL服务一直在正常运行。查了一下有这种问题原因,可能是因为之前已经安装了MySQL服务,需要在cmd 窗口下输入 sc delete mysql。

less01

题目描述:让用户上传一个参数’id’。
首先通过get请求传参id=1’,发现可以注入。
sqli-labs新手学习笔记(持续更新)
接着传参id=1’–+可知是单引号字符型注入。
sqli-labs新手学习笔记(持续更新)
之后通过order by语句判断数据库的字段数,(当order by后面的字段数大于数据库的字段数,该系统会报错,这是判断数据库字段数的一种常用方法)。发现order by 4–+时有报错信息,当输入order by 3–+时发现正常。sqli-labs新手学习笔记(持续更新)
确定目标数据库字段数为3后,就可以利用union查询了。
首先把id注释掉(id=-1)然后输入union select 1,group_concat(schema_name),3
from information_schema.schemata 获取数据库信息(爆库)
sqli-labs新手学习笔记(持续更新)
然后输入union select 1,group_concat(table_name),3 from information_schema.tbales where table_schema=‘security’–+获取数据库security的表的信息。(爆表)
sqli-labs新手学习笔记(持续更新)
然后输入union select 1,group_concat(column_name),3 from information_schema
.columns where table_name=‘users’–+获取user表的列
sqli-labs新手学习笔记(持续更新)最后输入union select 1,group_concat(concat_ws(’:’,username,password)),3 from users --+获取用户名和密码。
sqli-labs新手学习笔记(持续更新)

less02

查看网页代码发现sql语句与之前有所不同,少了$id两边的引号。说明单引号影响语句闭合,为数字注入和第一题一样,尝试使用order by判断漏洞。同样发现当order by后的数字为4时,系统报错,但order by后的数字为3时正常,表明同样有3个字段。
之后同样用联合查询获取数据库的信息(但是id参数的内容要去掉单引号)。

less03

在id=1后加上单引号同样报错,但报错信息和之前有所不同
sqli-labs新手学习笔记(持续更新)
再加上小括号和–+,页面提示正常信息,之后操作和之前相同。

less04

首先看一下代码,此时直接用get方法上传id=1’同样报错,但如果时双引号就能,
所以其他语句和前3个比不变,只需再id=1后加上双引号。

相关文章:

  • 2021-07-08
  • 2021-10-11
  • 2021-09-01
  • 2021-04-27
  • 2021-05-01
  • 2022-02-03
  • 2021-06-03
  • 2021-09-05
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-07
  • 2021-08-08
  • 2022-01-14
  • 2021-08-11
相关资源
相似解决方案