二次注入的使用场景是,大多数网站都会对用户输入的语句进行对特殊符号的过滤。
例如:恶意用户构造的插入语句为1',经过这些函数的处理则变为1\',这样便可以防止用户向服务器插入数据时引发的一些恶意操作,但这只是中途过滤了一下,最终返回到数据库里面的数据还是1'
如果管理者对取出的数据没有进行进一步的检验处理,服务器从数据库取出恶意数据,未经过滤就直接拼接
SQL语句进行查询,就会发生了SQL二次注入
二次注入流程
1、注册
test' or '1'='1
2、更新密码
更新用户:test' or '1'='1 的密码
update users set password='aa' where username='test' or '1'='1';
或者
注册用户:admin'# 并登录
更新密码:
update users set password='aa' where username='admin'#';