点我

SQL注入【二次注入】

原理

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

二次注入是通过与数据库服务器进行交互的过程再次进行注入。

image-20250210093313555

利用条件

  • 用户输入恶意语句。
  • 数据库把用户输入的数据没有做任何更改,直接进行了存储。
  • 再用户取出数据的过程中,数据库将用户输入的数据完整且没有做任何修饰的展示给用户。

靶场Less-24

1、一个登录界面,可进行更改密码、注册用户

在这里插入图片描述

2、查看数据库中原有的数据
在这里插入图片描述

3、目的:改掉admin用户的密码

4、注册用户

注册用户名为admin' -- q
密码为123456

在这里插入图片描述

5、注册成功
在这里插入图片描述

6、查看数据库有无增加用户
在这里插入图片描述

7、使用用户名admin' -- q 登录

8、观察admin用户的密码为admin
在这里插入图片描述

9、更改admin' -- q用户的密码为654321
在这里插入图片描述
在这里插入图片描述

10、再次查看数据库
在这里插入图片描述
观察到新注册的用户admin' -- q 密码没改变,admin用户的密码却更改为654321

11、使用admin用户登录
在这里插入图片描述
登录成功

能够更改admin密码原理

1、更改密码处的后端代码

$sql = "UPDATE users SET PASSWORD='$pass' where username='$username' and password='$curr_pass' "

2、当我们使用admin' -- q用户名 更改密码时 代码变为

$sql = "UPDATE users SET PASSWORD='$pass' where username='admin' -- q' and password='$curr_pass' "

username='admin' -- q'==>此处admin'构成闭合,用户名变为amdin用户,-- q则注释了后面的单引号
故可以使用 用户名admin' -- q 密码123456 登录,然后更改用户名admin的密码

分类: WEB安全

评论

-- 评论已关闭 --

目录