渗透测试套件BurpSuite 之 sqlmap快速执行脚本

图片

Burp Suite是一款信息安全从业人员必备的集 成型的渗透测试工具,它采用自动测试和半自动测试的方式,包含了 Proxy,Spider,Scanner,Intruder,Repeater,Sequencer,Decoder,Comparer等工具模块。通 过拦截HTTP/HTTPS的web数据包,充当浏览器和相关应用程序的中间人,进行拦截、修改、重放数据包进行测试,是web安全人员的一把必备的瑞士军刀。

SQLmap是一款用来检测与利用SQL注入漏洞的免费开源工具,有一个非常棒的特性,即对检测与利用的自动化处理(数据库指纹、访问底层文件系统、执行命令)。

在渗透的过程中,有很多时候是通过burp将抓到的包发送到sqlmap进行注入攻击,之前有同学分享过sqlmapapi的方式,今天再分享一个一键保存数据包到指定目录中(比如sqlmap目录),从而解放双手(女朋友).

代码

将以下代码复制,保存为Copy-to-File-to-Sqlmap-Folder.py
唯一要修改的是httpPath = "F:/01-tools/sqlmap" 这里改成你的sqlmap的执行目录,或者已经修改好的环境变量的目录中,所则会报错.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#coding=utf-8

#必须导入的库
from burp import IBurpExtender
from burp import IContextMenuFactory
from burp import IBurpExtenderCallbacks
from burp import IHttpRequestResponse
from burp import IHttpListener
from burp import IProxyListener

#导入java库
from javax.swing import JMenuItem

#Python原生模块
import os
import subprocess
import time
import re

#全局定义变量

httpPath = "F:/01-tools/sqlmap"

#切换路径
os.chdir(httpPath)

class BurpExtender(IBurpExtender, IHttpListener, IContextMenuFactory, IProxyListener, IHttpRequestResponse, IBurpExtenderCallbacks):
#必须引用的主函数,完成初始化设置
def registerExtenderCallbacks(self, callbacks):
#右键触发扫描
self._actionName = "Copy to File to Sqlmap Folder"
self._helers = callbacks.getHelpers()
self._callbacks = callbacks
#插件名字
callbacks.setExtensionName("Copy to File to Sqlmap Folder")
callbacks.registerHttpListener(self)
callbacks.registerContextMenuFactory(self)
callbacks.registerProxyListener(self)

return

#创建菜单右键
def createMenuItems(self, invocation):
menu = []
responses = invocation.getSelectedMessages()
if len(responses) == 1:
menu.append(JMenuItem(self._actionName, None, actionPerformed=lambda x, inv=invocation: self.sqlmapShell(inv)))
return menu
return None

#主函数
def sqlmapShell(self, invocation):

invMessage=invocation.getSelectedMessages()
request = invMessage[0].getRequest().tostring()

hostDomain=re.findall(r"Host: (.+?)\r\n", request)[0].replace('.', '_').replace(':', '_')

#定制时间戳,以下划线分割分别是月份_日分_小时_分钟_秒
timeName=time.strftime("%m_%d_%H_%M_%S", time.localtime())
fullName = hostDomain + "_" + timeName + ".txt"
fileObj = open(fullName, "w")
fileObj.write(request)
fileObj.close()
os.chdir(httpPath)
fullPathName = httpPath + hostDomain + "/" + fullName

载入BURP

图片

测试

图片

图片

文章目录
  1. 1. 代码
  2. 2. 载入BURP
  3. 3. 测试
|