这里演示一个二次注入,通俗来说就是,攻击者构造的恶意数据存储在数据库后,恶意数据被读取并进入到SQL查询语句所导致的注入。防御者可能在用户输入恶意数据时对其中的特殊字符进行了转义处理,但在恶意数据插入到数据库时被处理的数据又被还原并存储在数据库中,当 Web程序调用存储在数据库中的恶意数据并执行SQL查询时,就发生了SQL二次注入。
使用24关,进行演示,我们先看到原本的数据库中的信息记录:
这是原本的users表,然后我们要进行注册操作,这样提交的username和password会存入数据库中:
这里让username:admin‘# 让password为123456。然后我们进行注册:注册完进行登录:
然后这里登录进来后,就可以看到:
然后再看数据库中,就可以看到我们刚才的信息:
上面,我们更新密码为123,从原先的123456更新为123.然后我们打开数据库,就可以发现,
admin'#并没有更改,相反,更新的是admin的账号,这是因为我们的账号,单引号闭合,#注释掉了后面的条件。所以,执行生效,这就是二次注入。
标签:24,admin,数据库,恶意,labs,sqli,SQL,数据,注入 From: https://blog.csdn.net/m0_59527104/article/details/144537229