完成DVWA中low等级的SQL注入获得表名

Low等级的SQL注入:

输入:1' union select 1,group_concat(table_name) from information_schema.tables where table_schema = 'dvwa' #

解释(下面的和作业没有任何关系,只是我个人对这个东西的理解):
这里其实是一种SQL注释,当我们输入1的时候会出现

这里我们查看数据库中发生了什么

首先我们下载NAVICAT,这个有14天的试用期,我们可以不注册直接先试用

下载链接:Navicat | 产品

然后链接到我们的phpstudy的数据库中,注意选择mysql,因为phpstudy里面的数据库是MYSQL类型的,输入自己的密码,链接名称可以随便写,密码是之前我们注册DVWA是弄的,我这边是改成了root。


接下来我们新建查询,在新建的查询里面输入两个命令

SHOW VARIABLES LIKE "general_log%"

SET GLOBAL general_log = 'ON'

我们先选中SET GLOBAL general_log = 'ON' 点击运行来运行这个命令打开我们的日志

接下来我们和上面一样先选中然后运行SHOW VARIABLES LIKE "general_log%"

可以看到我们的日志已经成功打开了


然后我们打开日志文件我这边是CHENXUANDIANNAO.log,这个CHENXUANDIANNAO是我电脑名称。

可以看到它里面有怎么一段话 SELECT first_name, last_name FROM users WHERE user_id = '1'

这里我们需要明白 union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#这段代码

union select开始一个新的SQL查询。union操作符允许将两个结果集合并起来,所以攻击者可以将他们的查询结果插入到原始查询的结果中。

1,group_concat(table_name): 这部分是攻击者的查询,选择了两个字段:

  • 第一个字段是1,这是为了匹配原始查询的字段数量。
  • 第二个字段是group_concat(table_name),这个函数会将所有表名连接成一个字符串,使用逗号分隔。

from information_schema.tables: 这部分指定了数据来源。information_schema.tables是一个系统表,包含了当前数据库中所有表的信息。

where table_schema=database(): 这个条件确保只获取当前数据库的表名。database()函数返回当前数据库的名称。

#: 这是SQL注释符号,用于注释掉之后的SQL代码,防止语法错误

所以我们输入

1' union select 1,group_concat(table_name) from information_schema.tables where table_schema = 'dvwa' # 

便可以完成目标了,这就是一个简单的SQL注入,完成一些开发者没想到的操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值