Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
# Burp WebTech Extension
from burp import (IBurpExtender, IScannerCheck, IScanIssue, ITab)
from java.net import URL
from javax.swing import (GroupLayout, JPanel, JCheckBox, JButton)
import pickle
import json
from webtech import WebTech
from webtech.utils import UpdateInBurpException
from webtech.database import save_database_file, WAPPALYZER_DATABASE_URL, WAPPALYZER_DATABASE_FILE, WEBTECH_DATABASE_URL, DATABASE_FILE
from webtech.__version__ import __version__ as VERSION
issueTypeWebTech = 3933012
issueNameWebTech = "Detected some technologies in use"
databases = [(WAPPALYZER_DATABASE_URL, WAPPALYZER_DATABASE_FILE), (WEBTECH_DATABASE_URL, DATABASE_FILE)]
class BurpExtender(IBurpExtender, IScannerCheck, IScanIssue, ITab):
def registerExtenderCallbacks(self, callbacks):
self.callbacks = callbacks
self.helpers = callbacks.getHelpers()
callbacks.setExtensionName("WebTech")
self.out = callbacks.getStdout()
self.callbacks.printOutput("Sucessfully loaded WebTech {}".format(VERSION))
try:
self.webtech = WebTech(options={'json': True})
except UpdateInBurpException as e:
#self.callbacks.printOutput(e)
for db_file in databases:
db = self.callbacks.makeHttpRequest(
'raw.githubusercontent.com', # we are hardcoding this since there isn't a nice api for that
def __init__(self, options=None):
if not BURP:
update = False if options is None else options.get('update_db', False)
database.update_database(force=update)
with open(database.WAPPALYZER_DATABASE_FILE) as f:
self.db = json.load(f)
with open(database.DATABASE_FILE) as f:
self.db = database.merge_databases(self.db, json.load(f))
# Output text only
self.output_format = Format['text']
# Default user agent
self.USER_AGENT = default_user_agent()
if options is None:
return
self.scrape_url = options.get('scrape')
if options.get('database_file'):
try:
def __init__(self, options=None):
if not BURP:
update = False if options is None else options.get('update_db', False)
database.update_database(force=update)
with open(database.WAPPALYZER_DATABASE_FILE) as f:
self.db = json.load(f)
with open(database.DATABASE_FILE) as f:
self.db = database.merge_databases(self.db, json.load(f))
# Output text only
self.output_format = Format['text']
# Default user agent
self.USER_AGENT = default_user_agent()
if options is None:
return
if options.get('database_file'):
try:
with open(options.get('database_file')) as f: