1.2 Sqlmap
Sqlmap是一款开源的渗透测试工具,其可以自动检测并利用SQL注入漏洞。Sqlmap配备了强大的检测引擎,在CTF的Web类型的题目中经常会遇到注入类型的题目(见2.2节)。如果题目比较简单,甚至可以直接用Sqlmap得到flag。
但是,一般的题目还是需要进行绕过操作的,比如绕过空格或关键字检测等,这时候则可以调用Sqlmap的一些Tamper,或者自行编写Tamper来进行绕过,从而得到flag。
Sqlmap使用Python开发,常见的Linux发行版本都自带了Python环境,但若想要在Windows系统下使用Sqlmap,则需要自行安装Python环境。在GitHub中下载源码包(https://github.com/sqlmapproject/sqlmap),解压后便可以使用了,正确安装环境并部署源码包之后,在命令行下输入python sqlmap.py后会显示类似图1-11所示的界面。
图1-11 Sqlmap运行界面
Sqlmap提供了强大的命令行功能,而且在Burp中也存在Sqlmap的插件。下面就来介绍一些基本的参数及其作用(见表1-5)。
表1-5 Sqlmap的常用参数
Tamper通常用来绕过一些过滤或者WAF,此处将为大家列举一些常见Tamper的功能(见表1-6)。这些Tamper脚本存放在Sqlmap目录下的tamper目录中,大家可以通过这些Tamper的代码学习一些绕过技巧(后面的章节也会介绍一些常见的绕过方法),或者是自己尝试编写有针对性的Tamper。
表1-6 常用Tamper及作用
此外,Sqlmap还存在sqlmapapi.py,可以方便地通过API进行调度。更多的Sqlmap指令可在官方文档中找到,文档地址为:https://github.com/sqlmapproject/sqlmap/wiki。