-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathSqlmapAction.py
55 lines (46 loc) · 1.9 KB
/
SqlmapAction.py
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
from burp import IBurpExtender
from burp import IContextMenuFactory
from burp import IBurpExtenderCallbacks
from burp import IContextMenuInvocation
from burp import IHttpRequestResponse
from javax.swing import JMenuItem
import subprocess
pythonfile = "D:\\Program Files\\Python27\\python.exe"
sqlmapapi = "D:\\SecTools\\sqlmapproject-sqlmap-18e62fd\\sqlmap.py"
class BurpExtender(IBurpExtender, IContextMenuFactory):
def registerExtenderCallbacks(self, callbacks):
self._actionName = "Sqlmap Scan"
self._helers = callbacks.getHelpers()
self._callbacks = callbacks
callbacks.setExtensionName("Sqlmap Scan")
callbacks.registerContextMenuFactory(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.sqlMapScan(inv)))
return menu
return None
def sqlMapScan(self, invocation):
request = invocation.getSelectedMessages().pop()
analyzedRequest = self._helers.analyzeRequest(request)
url = analyzedRequest.url
body = ""
cookie = ""
referer = ""
useragent = ""
headers = analyzedRequest.getHeaders()
for header in headers:
if header.startswith("Cookie: "):
cookie = header.replace("Cookie: ","")
elif header.startswith("Referer: "):
referer = header.replace("Referer: ","")
elif header.startswith("User-Agent: "):
useragent = header.replace("User-Agent: ","")
if analyzedRequest.getMethod() == "POST":
body = request.getRequest().tostring()[analyzedRequest.getBodyOffset():]
cmd = "\"%s\" %s -u \"%s\" --data \"%s\" --batch --beep --cookie \"%s\" --user-agent \"%s\" --referer \"%s\" " % (pythonfile, sqlmapapi, url, body, cookie, useragent, referer)
print cmd
sqlmapdir = "D:\\SecTools\\sqlmapproject-sqlmap-18e62fd\\"
sub = subprocess.Popen(cmd, cwd=sqlmapdir, stdout=subprocess.PIPE)