sqli-labs:Less-24

Less 24实验主要是:二次注入

在本实验中,直接从用户名和密码位置是无法注入的,从源码中也能看到,这里我们就不试了。
sqli-labs:Less-24

因此我们大概看一下二次注入的原理:注册一个"特殊的用户",然后在修改密码的时候,使sql语句发生改变,任意执行一些命令,从而达到注入的目的。

接下来我们介绍一下该过程:

1、首先,该网站可以允许注册用户,以及用户自行修改密码。这里代码如下:
在login_create.php中有可以写入用户名和密码:
$sql = "insert into users ( username, password) values("$username", "$pass")";
在pass_change.php中有更新用户名和密码:
$sql = "UPDATE users SET PASSWORD=‘$pass‘ where username=‘$username‘ and password=‘$curr_pass‘ ";

2、这里我们可以构造一个“特殊的用户”: admin‘# ,这里目的是为了修改admin这个用户的用户名和密码。点击注册,然后注册用户名为 admin‘# 和 密码为 123456
sqli-labs:Less-24
sqli-labs:Less-24

创建成功后,我们该用户登录后会进入修改密码的页面:
sqli-labs:Less-24

3、这里我们就可以进行注入,来修改admin的密码。我们从上面更新用户名和密码的语句可以看到,该语句会变为:
$sql = "UPDATE users SET PASSWORD=‘$pass‘ where username=‘admin‘#‘ and password=‘$curr_pass‘ ";

后面的curr_pass已经被注释了,所以我们只用在New password输入我们想改的密码,就会对admin这个用户的密码进行修改。例如我们输入tangjf
sqli-labs:Less-24

点击提交,这时admin的密码就被修改为tangjf了,数据库执行的语句为:
UPDATE users SET PASSWORD=‘tangjf‘ where username=‘admin‘
sqli-labs:Less-24

4、退出当前用户,用admin用户来登录,发现密码已经改为了tangjf

所以我们就是构造一个 admin‘# 用户, 从而对 admin 用户发起攻击

sqli-labs:Less-24

上一篇:MySQL之函数(时间日期函数——重点)


下一篇:Python学习笔记——sqlalchemy