目录
1、登录界面
2、注册界面
3、修改密码界面
知识点:二次注入
思路:
这一关有几个页面可以给我们输入,一个登录界面,一个注册页面,一个修改密码界面
1、登录界面
首先我们登录界面看看
登录后出现一个修改密码的界面
登录界面的源代码
代码中使用了mysql_real-escape_string函数
所以我们不在这个界面进行注入
2、注册界面
mysql_escape_string
会对输入的符号进行转义,跟mysql_real-escape_string一样,不过现在这个函数已经被弃用了
所以我们也在这个界面进行注入
3、修改密码界面
这个界面对用户的密码都进行了过滤,但没有对用户名进行过滤
所以我们可以在用户名进行注入,修改密码界面又没有输入用户名,怎么办呢?
这里我们可以注册一个跟数据库里用户相似的用户,例如原本数据库有一个用户名admin
我们注册一个用户名为admin'# 的用户,注册完修改密码
修改密码的语句为
UPDATE users SET PASSWORD='$pass' where username='admin'#' and password='$curr_pass'
这样#后面的语句会被注释掉
执行的语句实际为UPDATE users SET PASSWORD='$pass' where username='admin'
那这样我们就变现修改了admin的密码,即使我们不知道原本admin的密码是什么,也可以修改我们所定义的
以Dumd用户为例
注册一个用户Dumb'#,密码为1
注册成功
接着我们再登录一下,然后修改密码
修改密码为1234
修改成功
结果显示,Dumb’#的密码没有改变,改变的是Dumb的密码
这样我们就可以使用我们修改的密码进行登录
这篇文章就先写到这里了,哪里不足的欢迎批评指正