上QQ阅读APP看书,第一时间看更新
2.1 什么是SQL注入
首先简单介绍一下SQL注入的成因。开发人员在开发过程中,直接将URL中的参数、HTTP Body中的Post参数或其他外来的用户输入(如Cookies,UserAgent等)与SQL语句进行拼接,造成待执行的SQL语句可控,从而使我们可以执行任意SQL语句。
了解了SQL注入的成因之后,我们再来简要介绍下常见SQL注入的分类,具体如下。
1)可回显的注入
·可以联合查询的注入。
·报错注入。
·通过注入进行DNS请求,从而达到可回显的目的。
2)不可回显的注入
·Bool盲注。
·时间盲注。
3)二次注入
通常作为一种业务逻辑较为复杂的题目出现,一般需要自己编写脚本以实现自动化注入。
SQL注入在CTF比赛中十分常见,涉及各种数据库。一般的CTF比赛中,出题人都会变相地增加一层WAF(比如,对关键字进行过滤等),然后只留下一个思路的解题路径,这时候我们需要快速找到并绕过这个点,然后得到flag。