二阶注入与普通注入的区别:
(1)普通SQL注入:
1)发生在一个HTTP请求和响应中,对系统的攻击是立即执行的
2)攻击者在 http请求中提交非法输入
3)应用程序处理非法输入,使用非法输入构造SQL语句
4)在攻击过程中向攻击者返回结果。
(2)二阶SQL注入
1)攻击者在 http 请求中提交某种经过构思的输入
2)应用程序存储该恶意输入(通常保存在数据库中)以便后面使用并响应请求
3)攻击者提交第二次(不同的)http请求
4)为处理第二次http 请求,程序会检索存储在数据库中的恶意输入并进行处理,从而导致攻击者构造的QL查询被执行
5)如果攻击成功,在第二次请求响应中向攻击者返回查询结果
1.访问SQLi-Labs网站
http://127.0.0.1/sqli-labs/Less-24/
2.注册新用户
在Less-24的初始页面点击下方的"New User click here?":
在用户注册页面新建用户admin'#,并设置其登录密码
3.利用新用户admin'#登录并修改密码
利用刚刚注册的新用户admin'#登录:
登录后出现可修改密码的认证界面,在此处将admin'#的密码修改为qwerty,修改完成后点击Reset按钮确认:
如果密码修改成功,页面会出现Password successfully updated的提示:

4.用用户名admin、密码qwerty尝试登录网站
1)重新访问Less-24
127.0.0.1/sqli-labs/Less-24/
2) 登录
输入用户名admin 密码qwerty
登录成功
原因
修改admin'#的密码为qwerty时,此时后端数据库执行的命令是:
UPDATE users SET PASSWORD='qwerty' where username='admin'#' andpassword='123456'
#表示注释,上述语句即等价于:
UPDATE users SET PASSWORD='qwerty' where username='admin'
这条语句执行的最终效果是将用户admin的密码修改为了qwerty。