与普通注入区别
普通注入:
(1)在http后面构造语句,是立即直接生效;
(2)普通注入很容易被扫描工具扫描到。
二次注入:
(1)先构造语句(此语句含有被转义字符的语句);
(2)将我们构造的恶意语句存入数据库;
(3)第二次构造语句(结合前面已被存入数据库的语句构造。因为系统没有对已存入的数据做检查,成功注入);
(4)二次注入更加难以被发现。
//////////////////////////////////
二次注入代码分析
二次注入实战
使用Less-24
先注册一个用户
用户名:admin’ – -
密码:123456
登录数据库查看是否写进去新的用户名和密码
然后在登陆修改密码
然后你重新打开数据库查看
你会发现刚才新写进去的用户名对应的密码没变
反而admin用户密码变了
因为数据库插入语句为
update set 新密码=“啥啥” where 用户名="" and 原密码=""
你第一次写的是admin’ – - 密码为123456
接下来要修改用户名为admin’ – -的密码
所以你输入用户名=‘admin‘ – -’
很明显–把后面的注释掉了
变成了修改用户名为admin的密码