Sqli labs less 24
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
3.创建成功后,我们该用户登录后会进入修改密码的页面,这里我们就可以进行注入,来修改admin的密码。我们从上面更新用户名和密码的语句可以看到,该语句会变为:
$sql = "UPDATE users SET PASSWORD='$pass' where username='admin'#' and password='$curr_pass' ";后面的curr_pass已经被注释了,所以我们只用在New password
输入我们想改的密码,就会对admin这个用户的密码进行修改。例如我们输入yidong
4.退出当前账户,使用admin重新登录,发现密码已经改为了yidong