一道简单的二次注入

遇到一道二次注入的题目,写了之后感觉自己得记一下。

原理:

二次注入需要具备2个条件:

(1)用户向数据库插入恶意语句(即使后端代码对语句进行了转义,如mysql_escape_string、mysql_real_escape_string转义)

(2)数据库对自己存储的数据非常放心,直接取出恶意数据给用户

例题

先添加一个用户,名为 

',username=database();#

 

 

 

 

编辑用户将其再次赋值提交

 

 得到数据库库名

 

 

 接下来步骤大致相同

查表

 

 查列

 

 

 得数据

 

在编辑用户页面中,我们对含有恶意执行语句的username重新赋值上相同的恶意语句,导致其直接执行。

 

 

 另外

 在sql-labs第24关也是对于二次注入的学习,可以动手尝试

 

[CISCN2019 华北赛区 Day1 Web5]CyberPunk 这道题也有异曲同工之妙,可以尝试一下

(一开始也是尝试使用上面的方法,但是实际上爆到表后就无法进行下去(可能做了限制),才发现是在提交之后报错输出)



posted @ 2020-07-20 20:50  airtail  阅读(168)  评论(0)    收藏  举报