CTF特训营:技术详解、解题方法与竞赛技巧
上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。