使用Burp, Sqlmap进行自动化SQL注入渗透测试

在OWSAP Top10中,注入型漏洞是排在第一位的,而在注入型漏洞中,SQL注入是远比命令行注入、Xpath注入、Ldap注入更常见。这就是本章要讲述的主要内容:在web应用程序的渗透测试中,如何使用Burp和Sqlmap的组合来进行SQL注入漏洞的测试。在讲述本章内容之前,默认为读者熟悉SQL的原理和SqlMap的基本使用,如果有不明白的同学,请先阅读《SQL注入攻击与防御》一书和SqlMap手册(最好是阅读官方文档)。+

本章包含的内容有:

  • 使用gason插件+SqlMap测试SQL注入漏洞
  • 使用加强版sqlmap4burp插件+SqlMap批量测试SQL注入漏洞

使用gason插件+SqlMap测试SQL注入漏洞

在正式开始本章的内容之前,我们先做如下两点约定:

  • 你已经安装配置好了python可运行环境
  • 你已经熟悉sqlmap的基本命令行的使用并正确安装

如果你已经做到了上面的两点,那么,我们正式开始进入本章的内容。

Burp Suite与SqlMap整合的插件除了BApp Store 中的SQLiPy外(如图),

使用Burp, Sqlmap进行自动化SQL注入渗透测试

还有gason和sqlmap4burp。不同的插件之间的功能大同小异,其目的都是使用命令行调用SqlMap的API接口进行SQL注入的测试,这里,我们主要以gason为例,讲述具体配置安装和功能使用。+

gason插件安装使用大体分以下几个步骤:

  1. 首先是下载gason插件。你可以从这个地址进行下载(点击下载),也可以从官方下载源码自己编译,总之就是获取到插件的安装文件gason-version.jar
  2. 打开BurpExtensions进行安装,点击【Add】按钮,按照图中所示操作即可。安装过程很简单,如果不明白的话,可参考《BurpSuite应用商店插件的使用》章节的内容。

使用Burp, Sqlmap进行自动化SQL注入渗透测试

如果出现了下图中所示结果,且【Output】和【Errors】两个tab页面中没有错误的提示信息,表示插件已安装成功。

使用Burp, Sqlmap进行自动化SQL注入渗透测试

3.安装完成后,当Burp的Proxy中拦截到消息记录时,可直接发送到sqlmap。如下图所示:

使用Burp, Sqlmap进行自动化SQL注入渗透测试

4.如果没有出现如上图所示的【send tosqlmap】菜单,则表示插件没正确安装成功,需要读者自己排查一下安装失败的原因。+

5.当我们在Burp拦截的请求消息上选择【send to sqlmap】后,则自动弹出sqlmap选项设置对话框。

使用Burp, Sqlmap进行自动化SQL注入渗透测试

从图中我们可以看出,插件会自动抓取消息内容并解析后填充到相关参数设置的选项里去。例如:参数和参数值,请求方式(GET/POST),url地址等。同时,还有许多与Sqlmap本身测试使用的选项值仍需要我们自己指定,其中最主要的两个是:

  • bin目录:这里是指sqlmap.py的路径
  • Command:sqlmap运行时执行的命令行

6.设置bin目录的方式很简单,点击【….】按钮,选择到sqlmap.py的存储路径即可。当binpath配置正确后,下方的Command会自动更新,随着设置参数的不同,自动调整需要执行的sqlmap命令行(如果不理解界面操作各个设置的含义,可以比较设置前后Command值的变化,即可以知道某个设置对应于sqlmap参数的哪一个选项)。

使用Burp, Sqlmap进行自动化SQL注入渗透测试

7.所有的配置正确之后,【run】按钮将被**,点击【run】,系统自动进入sqlmap扫描阶段。

使用Burp, Sqlmap进行自动化SQL注入渗透测试

当进入sqlmap扫描阶段时,插件会新增一个tab页面,显示执行进度,即如上图的箭头所指。

8.我们可以通过进度跟踪的界面上的【save to file】和【close tab】来保存扫描结果和关闭、终止扫描。

使用gason插件,与命令行方式执行sqlmap脚本相比,操作变得更加方便。比如说,在命令行环境中,我们需要先抓取cookie信息,才能放入到命令行里执行;亦或者,我们需要手工录入一个个参数进行命令行操作,而在gason插件环境中,这些都不需要。当我们点击【sendtosqlmap】时,插件自动帮我们完成了这些操作。且与sqlmap个性设置的选项,我们也可以通过界面操作,自动完成,比命令行下更直观、更高效。