基本介绍
这里所谓的二次注入其实就是将可能导致SQL注入的字符先存入到数据库中,而当我们再次调用这个恶意构造的字符时就可以触发SQL注入,这一种注入在平时比较常见,但是确实是存在的一种注入,故此在这里将其单独拎出来说一下
注入原理
二次注入的原理是在第一次进行数据库插入数据的时候,仅仅只是使用了addslashes或者是借助get_magic_quotes_gpc对其中的特殊字符进行了转义,在写入数据库的时候还是保留了原来的数据,但是数据本身还是脏数据,在将数据存入到了数据库中之后开发者就认为数据是可信的,在下一次进行需要进行查询的时候直接从数据库中取出了脏数据,没有进行进一步的检验和处理,这样就会造成SQL的二次注入,比如在第一次插入数据的时候,数据中带有单引号,直接插入到了数据库中然后在下一次使用中在拼凑的过程中就形成了二次注入:
总结起来二次注入其实是分为两个步骤:
- 插入恶意数据
- 引用恶意数据
注入思路
二次排序注入思路:
1、黑客通过构造数据的形式在浏览器或者其他软件中提交HTTP数据报文请求