二次注入原理,主要分为两步

第一步:插入恶意数据

               第一次进行数据库插入数据的时候,仅仅对其中的特殊字符进行了转义,在写入数据库的时候还是保留的原来的数据,但是数据本身包含恶意内容。

第二步:引用恶意数据

               在将数据存入数据库后,开发者认为数据是可信的,在下一次需要进行的查询的时候,直接从数据库中提出了恶意数据,没有进行进一步的检验和处理,就会造成sql的二次注入

以sql-labs24为例:

1.注册新用户(以admin‘ -- -用户名,123456密码为例)

sql注入——二次注入sql注入——二次注入

 

创建成功,并在security数据库查看(select *from users;)

sql注入——二次注入sql注入——二次注入

2.登录注册的用户,显示登录成功的页面

sql注入——二次注入

3.对新注册的用户进行修改密码,密码为“wogaila”

sql注入——二次注入sql注入——二次注入

4.返回数据库查看修改情况,这时可以发现新注册用户的密码没有改变,而原有的admin用户的密码变为了“wogaila”,这就是二次注入

sql注入——二次注入

 

 

相关文章: