简单了解SQL堆叠注入与二次注入(基于sqllabs演示)

1、堆叠注入

使用分号 ';' 成堆的执行sql语句

以sqllabs-less-38为例

?id=1'

简单测试发现闭合点为单引号

?id=1' order by 3
?id=1' order by 4

使用order by探测发现只有三列(字段数)

尝试简单的联合注入查询

?id=-1' union select 1,database(),user()--+

可行 

查询id为2的用户名和密码

?id=2

接下来我们使用堆叠注入对id为2的用户的密码进行修改

?id=1';update users set password='myon' where id=2 --+

首先使用单引号将前面语句进行闭合,该语句会正常查询id为1的用户信息;

之后使用分号结束该语句,后面继续追加我们还想执行的语句(更新用户信息)

这里的users、password等我们是可以通过联合注入查出来的,因此这里我就直接用了

我们再次查询id为2的用户信息

?id=2

可以看到密码已经被修改 

这个就是简单的堆叠注入,其实就是使用分号将语句隔开,使得我们可以一次执行多条语句。

2、二次注入

指已存储(数据库、文件)的用户的输入被读取后再次进入到 SQL 查询语句中导致的注入

成因:系统没有对已经存入数据库的数据做检查

以sqllabs-less-24为例

在我们的数据库里有一个用户名为admin,密码为admin的用户

假设我们只知道用户名为admin,并不知道密码

如果输入错误的密码

登录失败

接下来我们通过二次注入实现修改admin的密码

由于页面给我们提供了注册的功能

我们先注册一个用户名为 admin'# 的用户,密码这里设为123

注册成功

使用该账号登录

注意我们现在的身份是admin'#

提示我们可以修改密码

我们修改密码,假设改为12345

提示密码更新成功

我们login out退出

接下来神奇的东西发生了

我们尝试登录admin,密码即为我们刚才修改的密码12345

竟然以admin的身份登录成功了

换句话说,我们刚才对注新册的 admin'# 用户进行密码修改,其实是修改了 admin 的密码

查看本地数据库,也确实如此,也可以看到我们创建的用户和密码

在这个过程中,我们正常创建新用户其实是没有任何问题的,问题出在修改密码,此时查询的本该是用户 admin'# 的信息,但是由于 '#  闭合了前面,并且将后面的信息进行了注释,导致查到的用户名为 admin ,由于后面关于核对admin密码的信息也被注释掉了,即没有进行校验,从而误认为是admin在进行密码修改。

相关推荐

  1. SQL注入注入

    2023-12-30 07:06:04       8 阅读
  2. SQL布尔盲注、延迟注入注入

    2023-12-30 07:06:04       29 阅读
  3. SQL注入攻击 - 注入(Stacked Injection)

    2023-12-30 07:06:04       22 阅读
  4. sqllabs1-7sql注入

    2023-12-30 07:06:04       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-30 07:06:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-30 07:06:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-30 07:06:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-30 07:06:04       20 阅读

热门阅读

  1. Ubuntu 20.04 上安装和使用 Docker

    2023-12-30 07:06:04       36 阅读
  2. 从数据洞察到市场变革:我们的 Web3 愿景

    2023-12-30 07:06:04       39 阅读
  3. mysql 隔离级别和可重复读啥意思

    2023-12-30 07:06:04       32 阅读
  4. 【WPF.NET开发】对象生存期事件

    2023-12-30 07:06:04       42 阅读
  5. 2023前端开发面经大合集

    2023-12-30 07:06:04       33 阅读
  6. Docker 数据持久化的三种方式

    2023-12-30 07:06:04       34 阅读