Пример #1
0
 def registerExtenderCallbacks(self, callbacks):
     self.hashes = {}
     #self._stdout = PrintWriter(callbacks.getStdout(), True)
     self._callbacks = callbacks
     self._helpers = callbacks.getHelpers()
     self._callbacks.setExtensionName("Password Hash Scanner")
     self._callbacks.registerScannerCheck(self)
     self._fileLocation = None
     self._jPanel = swing.JPanel()
     boxVertical = swing.Box.createVerticalBox()
     boxHorizontal = swing.Box.createHorizontalBox()
     getFileButton = swing.JButton('Open hashout.txt',
                                   actionPerformed=self.getFile)
     self._fileText = swing.JTextArea("", 1, 50)
     boxHorizontal.add(getFileButton)
     boxHorizontal.add(self._fileText)
     boxVertical.add(boxHorizontal)
     boxHorizontal = swing.Box.createHorizontalBox()
     submitQueryButton = swing.JButton('Parse hash file',
                                       actionPerformed=self.hashParse)
     boxHorizontal.add(submitQueryButton)
     boxVertical.add(boxHorizontal)
     boxHorizontal = swing.Box.createHorizontalBox()
     boxHorizontal.add(swing.JLabel("Output"))
     boxVertical.add(boxHorizontal)
     boxHorizontal = swing.Box.createHorizontalBox()
     self._resultsTextArea = swing.JTextArea()
     resultsOutput = swing.JScrollPane(self._resultsTextArea)
     resultsOutput.setPreferredSize(Dimension(500, 200))
     boxHorizontal.add(resultsOutput)
     boxVertical.add(boxHorizontal)
     self._jPanel.add(boxVertical)
     # add the custom tab to Burp's UI
     self._callbacks.addSuiteTab(self)
     return
Пример #2
0
    def __init__(self, parent):
        self.parent = parent

        Panel = swing.JPanel()
        Panel.layout = awt.BorderLayout()
        Panel.border = swing.BorderFactory.createTitledBorder(
            "Payload Encoder")
        self.text = swing.JTextField(actionPerformed=self.encodePayload)
        Panel.add(self.text, Panel.layout.PAGE_START)

        self.textArea = swing.JTextArea()
        scrollPane = swing.JScrollPane(self.textArea)

        Panel.add(scrollPane, Panel.layout.CENTER)

        Panel1 = swing.JPanel()
        Panel1.layout = awt.BorderLayout()
        Panel1.border = swing.BorderFactory.createTitledBorder(
            "Payload Parser")
        self.text1 = swing.JTextField(actionPerformed=self.parsePayload)
        Panel1.add(self.text1, Panel1.layout.PAGE_START)

        self.textArea1 = swing.JTextArea()
        scrollPane1 = swing.JScrollPane(self.textArea1)

        Panel1.add(scrollPane1, Panel1.layout.CENTER)

        self.splitPane = swing.JSplitPane(swing.JSplitPane.VERTICAL_SPLIT)

        self.splitPane.setDividerLocation(250)
        self.splitPane.setLeftComponent(Panel)
        self.splitPane.setRightComponent(Panel1)

        self.parent.addTabPanel("Options", self.splitPane)
Пример #3
0
 def registerExtenderCallbacks(self, callbacks):
     self._callbacks = callbacks
     self._helpers = callbacks.getHelpers()
     self.context = None
     callbacks.setExtensionName("quoted-printable Parser")
     self._jPanel = swing.JPanel()
     self._jPanel.setLayout(
         swing.BoxLayout(self._jPanel, swing.BoxLayout.Y_AXIS))
     self._jTextIn = swing.JTextArea("Input", 20, 10)
     self._jTextIn.setLineWrap(True)
     self._jScrollPaneIn = swing.JScrollPane(self._jTextIn)
     self._jScrollPaneIn.setVerticalScrollBarPolicy(
         swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS)
     self._jScrollPaneIn.setPreferredSize(awt.Dimension(20, 10))
     self._jTextOut = swing.JTextArea("Output", 20, 10)
     self._jTextOut.setLineWrap(True)
     self._jScrollPaneOut = swing.JScrollPane(self._jTextOut)
     self._jScrollPaneOut.setVerticalScrollBarPolicy(
         swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS)
     self._jScrollPaneOut.setPreferredSize(awt.Dimension(20, 10))
     self._jButtonPanel = swing.JPanel()
     self._jButtonDecode = swing.JButton('Decode',
                                         actionPerformed=self.decode)
     self._jButtonPanel.add(self._jButtonDecode)
     self._jPanel.add(self._jScrollPaneIn)
     self._jPanel.add(self._jButtonPanel)
     self._jPanel.add(self._jScrollPaneOut)
     callbacks.customizeUiComponent(self._jPanel)
     callbacks.addSuiteTab(self)
     return
Пример #4
0
    def registerExtenderCallbacks(self, callbacks):
        print "SAML BurpSuite Extension"
        print "Ben Campbell <eat_meatballs[at]hotmail.co.uk>"
        print "http://rewtdance.blogspot.co.uk"
        print "http://github.com/Meatballs1/burp_saml"

        # keep a reference to our callbacks object
        self._callbacks = callbacks

        # obtain an extension helpers object
        self._helpers = callbacks.getHelpers()

        # set our extension name
        callbacks.setExtensionName("SAML Decoder")

        # Create Tab
        self._jPanel = swing.JPanel()
        self._jPanel.setLayout(
            swing.BoxLayout(self._jPanel, swing.BoxLayout.Y_AXIS))

        # SAML Binding Format
        self._jTextIn = swing.JTextArea("SAML Binding In", 20, 120)
        self._jTextIn.setLineWrap(True)
        self._jTextOut = swing.JTextArea("SAML Binding Out", 20, 120)
        self._jTextOut.setLineWrap(True)
        self._jButtonPanel = swing.JPanel()
        self._jButtonEncode = swing.JButton('Encode',
                                            actionPerformed=self.encode)
        self._jButtonDecode = swing.JButton('Decode',
                                            actionPerformed=self.decode)
        self._jButtonPanel.add(self._jButtonEncode)
        self._jButtonPanel.add(self._jButtonDecode)
        self._jPanel.add(self._jTextIn)
        self._jPanel.add(self._jButtonPanel)
        self._jPanel.add(self._jTextOut)

        # SAML Artifact Format
        self._jTextArtIn = swing.JTextArea("SAML Artifact In", 20, 120)
        self._jTextArtIn.setLineWrap(True)
        self._jTextArtOut = swing.JTextArea("SAML Artifact Out", 20, 120)
        self._jTextArtOut.setLineWrap(True)
        self._jButtonArtPanel = swing.JPanel()
        self._jButtonArtEncode = swing.JButton('Encode',
                                               actionPerformed=self.art_encode)
        self._jButtonArtDecode = swing.JButton('Decode',
                                               actionPerformed=self.art_decode)
        self._jButtonArtPanel.add(self._jButtonArtEncode)
        self._jButtonArtPanel.add(self._jButtonArtDecode)
        self._jPanel.add(self._jTextArtIn)
        self._jPanel.add(self._jButtonArtPanel)
        self._jPanel.add(self._jTextArtOut)

        callbacks.customizeUiComponent(self._jPanel)

        # register ourselves as a message editor tab factory
        callbacks.addSuiteTab(self)
        return
Пример #5
0
    def runAboutLeoDialog(self, version, theCopyright, url, email):
        """Create and run Leo's About Leo dialog."""
        dialog = self._getDialog("About Leo")
        cpane = dialog.getContentPane()
        data = "%s\n%s\n\n%s\n\n%s" % (version, theCopyright, url, email)
        jtc = swing.JTextArea()
        jtc.setText(data)
        jtc.setEditable(False)
        dialog.add(jtc)

        class cl_act(swing.AbstractAction):
            def __init__(self, dialog):
                swing.AbstractAction.__init__(self, "Close")
                self.dialog = dialog

            def actionPerformed(self, aE):
                self.dialog.dispose()

        button = swing.JButton(cl_act(dialog))
        jbp = swing.JPanel()
        jbp.add(button)
        dialog.add(jbp, awt.BorderLayout.SOUTH)
        dialog.pack()
        w, h = self._calculateCenteredPosition(dialog)
        dialog.setLocation(w, h)
        dialog.setAlwaysOnTop(1)
        dialog.visible = 1
Пример #6
0
    def initGui(self):
        self.sigv4ConfigurationTab = swing.JPanel()
        layout = swing.GroupLayout(self.sigv4ConfigurationTab)
        self.sigv4ConfigurationTab.setLayout(layout)

        self.addDomainInfo = swing.JLabel("Domain to test:")
        self.addDomainInfo.setFont(Font("Tahoma", 1, 12))
        self.configurationLoadedInfo = swing.JLabel("")
        self.configurationLoadedInfo.setFont(Font("Tahoma", 1, 12))
        self.isJsonCheck = swing.JCheckBox("JSON")
        self.isJsonCheck.setFont(Font("Tahoma", 1, 12))
        self.parseCredsBtn = swing.JButton('Load configuration', actionPerformed=self.parseCreds)
        self.credsPanel = swing.JScrollPane()
        self.credsText = swing.JTextArea("Paste Creds Here.")
        self.credsText.setLineWrap(True)
        self.credsPanel.setViewportView(self.credsText)
        self.scopeUrlField = swing.JTextField("api.example.io")

        layout.setHorizontalGroup(
            layout.createParallelGroup(swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(15)
                .addGroup(layout.createParallelGroup(swing.GroupLayout.Alignment.LEADING)
                    .addComponent(self.isJsonCheck)
                    .addComponent(self.credsPanel, swing.GroupLayout.PREFERRED_SIZE, 525, swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(self.addDomainInfo)
                    .addComponent(self.scopeUrlField, swing.GroupLayout.PREFERRED_SIZE, 350, swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(self.parseCredsBtn))
                            .addComponent(self.configurationLoadedInfo)
                        .addPreferredGap(swing.LayoutStyle.ComponentPlacement.UNRELATED))
                    .addComponent(self.addDomainInfo))
                .addContainerGap(26, lang.Short.MAX_VALUE)))

        layout.setVerticalGroup(
            layout.createParallelGroup(swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(10)
                .addComponent(self.isJsonCheck)
                .addGap(10)
                .addComponent(self.credsPanel, swing.GroupLayout.PREFERRED_SIZE, 125, swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(layout.createParallelGroup(swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(10)
                        .addComponent(self.addDomainInfo)
                        .addGap(10)
                        .addComponent(self.scopeUrlField, swing.GroupLayout.PREFERRED_SIZE, swing.GroupLayout.DEFAULT_SIZE, swing.GroupLayout.PREFERRED_SIZE)
                        .addGroup(layout.createParallelGroup(swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addGap(10)
                                .addComponent(self.parseCredsBtn)
                                .addGap(10)
                                .addComponent(self.configurationLoadedInfo)
                                .addPreferredGap(swing.LayoutStyle.ComponentPlacement.RELATED)
                .addPreferredGap(swing.LayoutStyle.ComponentPlacement.RELATED)
                .addContainerGap(swing.GroupLayout.DEFAULT_SIZE, lang.Short.MAX_VALUE)))))))
        
        return 
Пример #7
0
    def initUI(self):
        self.tab = swing.JPanel()

        # UI for Output
        self.outputLabel = swing.JLabel("pMDetector Log:")
        self.outputLabel.setFont(Font("Tahoma", Font.BOLD, 14))
        self.outputLabel.setForeground(Color(255, 102, 52))
        self.logPane = swing.JScrollPane()
        self.outputTxtArea = swing.JTextArea()
        self.outputTxtArea.setFont(Font("Consolas", Font.PLAIN, 12))
        self.outputTxtArea.setLineWrap(True)
        self.logPane.setViewportView(self.outputTxtArea)
        self.clearBtn = swing.JButton("Clear Log", actionPerformed=self.clear)
        self.exportBtn = swing.JButton("Export Log",
                                       actionPerformed=self.export)
        self.parentFrm = swing.JFileChooser()

        # Layout
        layout = swing.GroupLayout(self.tab)
        layout.setAutoCreateGaps(True)
        layout.setAutoCreateContainerGaps(True)
        self.tab.setLayout(layout)

        layout.setHorizontalGroup(layout.createParallelGroup().addGroup(
            layout.createSequentialGroup().addGroup(
                layout.createParallelGroup().addComponent(
                    self.outputLabel).addComponent(self.logPane).addComponent(
                        self.clearBtn).addComponent(self.exportBtn))))

        layout.setVerticalGroup(layout.createParallelGroup().addGroup(
            layout.createParallelGroup().addGroup(
                layout.createSequentialGroup().addComponent(
                    self.outputLabel).addComponent(self.logPane).addComponent(
                        self.clearBtn).addComponent(self.exportBtn))))
Пример #8
0
    def __init__(self):
        self.frame=swing.JFrame(title="My Frame", size=(300,300))
        self.frame.defaultCloseOperation=swing.JFrame.EXIT_ON_CLOSE;
        self.frame.layout=awt.BorderLayout()
        self.panel1=swing.JPanel(awt.BorderLayout())
        self.panel2=swing.JPanel(awt.GridLayout(4,1))
        self.panel2.preferredSize = awt.Dimension(10,100)
        self.panel3=swing.JPanel(awt.BorderLayout())

        self.title=swing.JLabel("Text Rendering")
        self.button1=swing.JButton("Print Text", actionPerformed=self.printMessage)
        self.button2=swing.JButton("Clear Text", actionPerformed=self.clearMessage)
        self.textField=swing.JTextField(30)
        self.outputText=swing.JTextArea(4,15)
        

        self.panel1.add(self.title)
        self.panel2.add(self.textField)
        self.panel2.add(self.button1)
        self.panel2.add(self.button2)
        self.panel3.add(self.outputText)

        self.frame.contentPane.add(self.panel1, awt.BorderLayout.PAGE_START)
        self.frame.contentPane.add(self.panel2, awt.BorderLayout.CENTER)
        self.frame.contentPane.add(self.panel3, awt.BorderLayout.PAGE_END)
Пример #9
0
    def __init__(self):
        self.frame=swing.JFrame(title="Simple Jython Interpreter", size=(600,500))
        self.frame.defaultCloseOperation=swing.JFrame.EXIT_ON_CLOSE;
        self.frame.layout=awt.BorderLayout()
        self.panel1=swing.JPanel(awt.BorderLayout())
        self.panel2=swing.JPanel(awt.BorderLayout())


        self.title=swing.JLabel("Jython Code")
        self.title2 = swing.JLabel("Interpreter Output")
        self.button1=swing.JButton("Run", actionPerformed=self.printMessage)
        self.button2=swing.JButton("Clear Output", actionPerformed=self.clearMessage)

        self.buttonPane = swing.JPanel()
        self.buttonPane.layout = swing.BoxLayout(self.buttonPane, swing.BoxLayout.LINE_AXIS)
        self.buttonPane.border = swing.BorderFactory.createEmptyBorder(0, 10, 10, 10)
        self.buttonPane.add(swing.Box.createHorizontalGlue())
        self.buttonPane.add(self.button1)
        self.buttonPane.add(swing.Box.createRigidArea(awt.Dimension(10, 0)))
        self.buttonPane.add(self.button2)

        self.textField=swing.JTextArea(4,15)
        self.textField.lineWrap = True
        self.scrollPaneOne = swing.JScrollPane(self.textField)
        self.scrollPaneOne.verticalScrollBarPolicy = swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS
        self.outputText=swing.JTextArea(4,15)
        self.outputText.lineWrap = True
        self.outputText.editable = False
        self.scrollPane2 = swing.JScrollPane(self.outputText)
        self.scrollPane2.verticalScrollBarPolicy = swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS
        

        self.panel1.add(self.title, awt.BorderLayout.PAGE_START)
        self.panel1.add(self.scrollPaneOne, awt.BorderLayout.CENTER)
        self.panel2.add(self.title2, awt.BorderLayout.PAGE_START)
        self.panel2.add(self.scrollPane2, awt.BorderLayout.CENTER)

        self.splitPane = swing.JSplitPane(swing.JSplitPane.VERTICAL_SPLIT,
                         self.panel1, self.panel2)
        self.splitPane.oneTouchExpandable = True
        self.minimumSize = awt.Dimension(50, 100)
        self.panel1.minimumSize = self.minimumSize
        self.panel2.minimumSize = self.minimumSize

        self.frame.contentPane.add(self.splitPane, awt.BorderLayout.CENTER)
        self.frame.contentPane.add(self.buttonPane, awt.BorderLayout.PAGE_END)
Пример #10
0
 def __init__(self):
     self.messageText = swing.JTextArea(text="new chat instance!",
                                        editable=False,
                                        lineWrap=True,
                                        size=(300, 1))
     self.state = "Not in chatroom"
     self.CHATID = 0
     self.status = swing.JLabel("")
     return
    def registerExtenderCallbacks(self, callbacks):
        print "Install Successful...."
        # 测试文本
        testtext = u'''
admin u'\u8fd9\u662f\u4e00\u4e2a\u6d4b\u8bd5\u9875\u9762'
root u'\u4f60\u4ee5\u4e3a\u6709\u91cd\u8981\u4fe1\u606f\u4e48\uff1f'
\u6211\u662F\u4E00\u4E2A\u7C89\u5237\u5320\uFF0C\u7C89\u5237\u672C\u9886\u5F3A\uFF0C
\u6211\u8981\u628A\u90A3\u5C0F\u623F\u5B50\uFF0C\u5237\u7684\u5F88\u6F02\u4EAE\u3002
%u6211%u662F%u4E00%u4E2A%u7C89%u5237%u5320%uFF0C%u7C89%u5237%u672C%u9886%u5F3A%uFF0C
%u6211%u8981%u628A%u90A3%u5C0F%u623F%u5B50%uFF0C%u5237%u7684%u5F88%u6F02%u4EAE%u3002
\x31\x2C\x31\x29\x3B\x75\x70\x64\x61\x74\x65\x20\x5B\x64\x76\x5F\x75\x73\x65\x72\x5D\x20\x73\x65\x74\x20\x75\x73\x65\x72\x67\x72\x6F\x75\x70\x69\x64\x3D\x31\x20\x77\x68\x65\x72\x65\x20\x75\x73\x65\x72\x69\x64\x3D\x32\x3B\x2D\x2D\x20
\x75\x73\x65\x72\x69\x64\x3D\x32\x3B\x2D\x2D\x20
0x310x2C0x310x290x3B0x750x700x640x610x740x650x200x5B0x640x760x5F0x750x730x650x720x5D0x200x730x650x740x200x750x730x650x720x670x720x6F0x750x700x690x640x3D0x310x200x770x680x650x720x650x200x750x730x650x720x690x640x3D0x320x3B0x2D0x2D0x20
0x312C31293B757064617465205B64765F757365725D20736574207573657267726F757069643D31207768657265207573657269643D323B2D2D20
 闲话不说了,base64模块真正用的上的方法只有8个,分别是encode, decode,
 ZW5jb2Rlc3RyaW5n, ZGVjb2Rlc3RyaW5n, YjY0ZW5jb2Rl,b64decode,
  dXJsc2FmZV9iNjRkZWNvZGUsdXJsc2FmZV9iNjRlbmNvZGXjgII=他们8个可以两两分为4组,
  ZW5jb2RlLGRlY29kZQ==一组,专门用来编码和 解码文件的,也可以对StringIO里的数据做编解码;
 ZW5jb2Rlc3RyaW5nLGRlY29kZXN0cmluZw==一组,专门用来编码和解码字符串;
'''
        # 保持对象的引用
        self._callbacks = callbacks
        # 获得扩展辅助对象
        self._helpers = callbacks.getHelpers()
        # 设置Extender里面显示的插件名
        callbacks.setExtensionName("DecodeAssistantDev0.2")
        # 用java的swing库创建一个标签
        self._jPanel = swing.JPanel()
        self._jPanel.setLayout(
            swing.BoxLayout(self._jPanel, swing.BoxLayout.Y_AXIS))
        # 文本框
        self._jTextIn = swing.JTextArea(testtext, 20, 120)
        self._jTextIn.setLineWrap(True)
        self._jScrollPaneIn = swing.JScrollPane(self._jTextIn)
        self._jScrollPaneIn.setVerticalScrollBarPolicy(
            swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS)
        self._jScrollPaneIn.setPreferredSize(awt.Dimension(20, 120))
        # 定义2个按钮,编码和解码
        self._jButtonPanel = swing.JPanel()
        self._jButtonEncode = swing.JButton('Encode',
                                            actionPerformed=self.encode)
        self._jButtonDecode = swing.JButton('Decode',
                                            actionPerformed=self.decode)
        self._jButtonPanel.add(self._jButtonEncode)
        self._jButtonPanel.add(self._jButtonDecode)
        self._jPanel.add(self._jScrollPaneIn)
        self._jPanel.add(self._jButtonPanel)

        callbacks.customizeUiComponent(self._jPanel)

        # register ourselves as a message editor tab factory
        callbacks.addSuiteTab(self)
        return
Пример #12
0
    def run(self, server, name, *passw):
        self.as400 = acc.AS400(server, name, *passw)

        # Get user profile descriptions==> usrDct
        rUsrLst = rsc.RUserList(self.as400)
        rUsrLst.open()
        rUsrLst.waitForComplete()
        self.usrDct = {}
        for idx in range(rUsrLst.getListLength()):
            tmp_rUsr = rUsrLst.resourceAt(idx)
            key_usr = tmp_rUsr.getAttributeValue(rsc.RUser.USER_PROFILE_NAME)
            if key_usr.startswith('Q') or key_usr == 'FAXSTAR':
                continue
            tmp_usrText = tmp_rUsr.getAttributeValue(
                rsc.RUser.TEXT_DESCRIPTION)
            self.usrDct[key_usr] = tmp_usrText
        rUsrLst.close()

        # Interactive job list
        self.jobLst = rsc.RJobList(self.as400)
        self.jobLst.setSelectionValue(rsc.RJobList.PRIMARY_JOB_STATUSES, \
                                      rsc.RJob.JOB_STATUS_ACTIVE)
        self.jobLst.setSelectionValue(rsc.RJobList.JOB_TYPE, \
                                      rsc.RJob.JOB_TYPE_INTERACTIVE)
        self.jobLst.setSortValue([rsc.RJob.USER_NAME, rsc.RJob.JOB_NAME])

        # Thread of execution to receive instant messages
        self.polchat = Thread(Poller(self))

        # Form GUI
        self.contentPane.setLayout(awt.GridBagLayout())
        self.addWindowListener(self)
        self.chkActive = swing.JCheckBox("Show only Active Users", 1)

        self.chatTxt = swing.JTextArea(5, 30, lineWrap=1, wrapStyleWord=1)
        self.rpyTxt = swing.JTextArea(10, 30, lineWrap=1, wrapStyleWord=1)
        self.users = swing.JComboBox(preferredSize=(250, 25),
                                     minimumSize=(250, 25))

        self.showGui()
Пример #13
0
 def __init__(self):
     swing.JFrame.__init__(self)
     self.title = 'Chat'
     self.windowClosing = self.onExit
     self.text = swing.JTextArea(editable=0,
                                 lineWrap=1,
                                 wrapStyleWord=1)
     self.contentPane.add(swing.JScrollPane(self.text))
     self.input = swing.JTextField(actionPerformed=self.onEnter)
     self.contentPane.add(self.input, 'South')
     self.size = 300, 200
     self.show()
     self.input.requestFocus()
    def registerExtenderCallbacks(self, callbacks):
        # keep a reference to our callbacks object
        self._callbacks = callbacks
        # obtain an extension helpers object
        self._helpers = callbacks.getHelpers()
        # set out extension name
        self._callbacks.setExtensionName("Polito Inc. :: Request Analytics")

        # create out GUI
        self._jPanel = swing.JPanel()
        mainVerticalBox = swing.Box.createVerticalBox()

        descriptionHorizontalBox = swing.Box.createHorizontalBox()
        descriptionHorizontalBox.add(
            swing.JLabel(
                "<html><br /><br />Request Analytics will track every request made through Burp and track how many times each 'file' appears in only uniqe URIs.<br />Only URIs included in scope will be analyzed.<br /><br /><br /></html>"
            ))
        mainVerticalBox.add(descriptionHorizontalBox)

        controlsHorizontalBox = swing.Box.createHorizontalBox()
        displayAnalyticDataButton = swing.JButton(
            'Display Analytic Data', actionPerformed=self.displayAnalyticData)
        controlsHorizontalBox.add(displayAnalyticDataButton)
        resetAnalyticDataButton = swing.JButton(
            'Reset Analytic Data', actionPerformed=self.resetAnalyticData)
        controlsHorizontalBox.add(resetAnalyticDataButton)
        mainVerticalBox.add(controlsHorizontalBox)

        spacer1HorizontalBox = swing.Box.createHorizontalBox()
        spacer1HorizontalBox.add(
            swing.JLabel("<html><br /><br /><br /></html>"))
        mainVerticalBox.add(spacer1HorizontalBox)

        outputHorizontalBox = swing.Box.createHorizontalBox()
        self._outputTextArea = swing.JTextArea()
        self._outputTextArea.setEditable(False)
        outputTextArea = swing.JScrollPane(self._outputTextArea)
        outputTextArea.setPreferredSize(Dimension(250, 300))
        outputHorizontalBox.add(outputTextArea)
        mainVerticalBox.add(outputHorizontalBox)

        self._jPanel.add(mainVerticalBox)

        # register ourselves as an HTTP listener
        self._callbacks.registerHttpListener(self)
        # add the custom tab to Burp's UI
        self._callbacks.addSuiteTab(self)

        return
Пример #15
0
    def createGui (self):             # build the GUI
        self.layout = awt.BorderLayout()

        progB = self.__progressBar = \
            swing.JProgressBar(0, 100, stringPainted=1);

        inf = self.__inputField = swing.JTextField(5)
        inl = swing.JLabel("Calculate value of:", swing.JLabel.RIGHT)
        inl.labelFor = inf

        outf = self.__outputArea = swing.JTextArea()
        outl = swing.JLabel("Result:", swing.JLabel.RIGHT)
        outl.labelFor = outf

        calcb = self.__calcButton = \
            swing.JButton("Calculate", actionPerformed=self.doCalc,
                          enabled=1, mnemonic=awtevent.KeyEvent.VK_C)
        cancelb = self.__cancelButton = \
             swing.JButton("Cancel", actionPerformed=self.doCancel,
                          enabled=0, mnemonic=awtevent.KeyEvent.VK_L)

        vl = ValueLayout(5, 5)
        inp = swing.JPanel(vl)
        vl.setLayoutAlignmentX(inp, 0.2)
        inp.add(inl); inp.add(inf, inl)
        self.add(inp, awt.BorderLayout.NORTH)

        vl = ValueLayout(5, 5)
        outp = swing.JPanel(vl)
        vl.setLayoutAlignmentX(outp, 0.2)
        outp.add(outl); outp.add(swing.JScrollPane(outf), outl)

        xoutp = swing.JPanel(awt.BorderLayout())
        xoutp.add(progB, awt.BorderLayout.NORTH)
        xoutp.add(outp, awt.BorderLayout.CENTER)

        self.add(xoutp, awt.BorderLayout.CENTER)

        sp = swing.JPanel(awt.BorderLayout())

        bp = swing.JPanel()
        bp.add(calcb)
        bp.add(cancelb)
        sp.add(bp, awt.BorderLayout.NORTH)

        sl = self.__statusLabel = swing.JLabel(" ")
        sp.add(sl, awt.BorderLayout.SOUTH)
        self.add(sp, awt.BorderLayout.SOUTH)
Пример #16
0
    def registerExtenderCallbacks(self, callbacks):

        # keep a reference to our callbacks object
        self._callbacks = callbacks
        # set our extension name
        self._callbacks.setExtensionName("Payload Parser")
        # build UI
        self._jPanel = swing.JPanel()
        self._jPanel.layout = awt.BorderLayout()
        self._jPanel.border = swing.BorderFactory.createTitledBorder(
            "Input characters to display payload strings with characters included or excluded"
        )
        inputPanel = swing.JPanel()
        inputPanel.layout = awt.BorderLayout()
        radioPanel = swing.JPanel()
        self.text1 = swing.JTextField(actionPerformed=self.radioCallback)
        inputPanel.add(self.text1, inputPanel.layout.CENTER)
        buttonGroup = swing.ButtonGroup()
        self._radioButtonInclude = swing.JRadioButton("Include")
        buttonGroup.add(self._radioButtonInclude)
        radioPanel.add(self._radioButtonInclude)
        self._radioButtonExclude = swing.JRadioButton("Exclude")
        buttonGroup.add(self._radioButtonExclude)
        radioPanel.add(self._radioButtonExclude)
        self._radioButtonInclude.setSelected(True)
        inputPanel.add(radioPanel, inputPanel.layout.LINE_END)
        self._jPanel.add(inputPanel, self._jPanel.layout.PAGE_START)
        self.textArea = swing.JTextArea()
        scrollPane = swing.JScrollPane(self.textArea)
        self._jPanel.add(scrollPane, self._jPanel.layout.CENTER)
        boxVertical = swing.Box.createVerticalBox()
        saveLabel = swing.JLabel(
            "Save Payloads (In Burp Root Dir): Can be Imported into Intruder")
        boxVertical.add(saveLabel)
        boxHorizontal = swing.Box.createHorizontalBox()
        saveLabel2 = swing.JLabel("Save As:")
        boxHorizontal.add(saveLabel2)
        self._saveTextField = swing.JTextField('', 30)
        boxHorizontal.add(self._saveTextField)
        submitSaveButton = swing.JButton('Save',
                                         actionPerformed=self.savePayload)
        boxHorizontal.add(submitSaveButton)
        boxVertical.add(boxHorizontal)
        self._jPanel.add(boxVertical, self._jPanel.layout.PAGE_END)
        # add the custom tab to Burp's UI
        self._callbacks.addSuiteTab(self)
        return
Пример #17
0
def getMessage():
    
    d = swing.JDialog()
    d.setTitle( "Message")
    cp = d.getContentPane()
    cp.setLayout( java.awt.BorderLayout())
    jta = swing.JTextArea()
    jsp = swing.JScrollPane( jta ) 
    jsp.setPreferredSize( java.awt.Dimension( 250, 250 ) )
    cp.add( jsp )
    buttonpanel = swing.JPanel()
    cp.add( buttonpanel, java.awt.BorderLayout.SOUTH)
    write = swing.JButton( "Write")
    buttonpanel.add( write)
    write.actionPerformed = lambda event: d.dispose()
    d.pack()
    g.app.gui.center_dialog( d )
    d.setModal( 1 )
    d.visible = 1
    return jta.getText()
Пример #18
0
    def editMappings(self, event, text=None):

        if not text:
            text = json.dumps(self.colour_mappings, indent=2)

        msg = swing.JTextArea(text, 10, 80)
        msg.setLineWrap(True)
        msg.setWrapStyleWord(True)
        scroll = swing.JScrollPane(msg)

        resp = swing.JOptionPane.showConfirmDialog(
            None, scroll, "Mappings", swing.JOptionPane.OK_CANCEL_OPTION,
            swing.JOptionPane.PLAIN_MESSAGE)
        if resp == 0:
            try:
                self.colour_mappings = json.loads(msg.getText())
                self.callbacks.saveExtensionSetting(
                    SETTING_MAPPINGS, json.dumps(self.colour_mappings))
                swing.JOptionPane.showMessageDialog(None, "Mappings saved")
            except Exception as e:
                swing.JOptionPane.showMessageDialog(
                    None, "Unable to parse JSON.\n\n{}".format(e))
                self.editMappings(None, msg.getText())
Пример #19
0
    def initGui(self):
        self.tab = swing.JPanel()
        self.titleLabel = swing.JLabel("Burp Importer")
        self.titleLabel.setFont(Font("Tahoma", 1, 16))
        self.titleLabel.setForeground(Color(235, 136, 0))
        self.infoLabel = swing.JLabel(
            "Burp Importer loads a list of URLs or parses output from various automated scanners and populates the sitemap with each successful connection."
        )
        self.infoLabel.setFont(Font("Tahoma", 0, 12))
        self.fileOptionLabel = swing.JLabel("File Load Option")
        self.fileOptionLabel.setFont(Font("Tahoma", 1, 12))
        self.fileDescLabel = swing.JLabel(
            "This option is only used when loading a file to be parsed for http(s) connections.  You can disregard this option and paste a list of URLs in the box below."
        )
        self.fileDescLabel.setFont(Font("Tahoma", 0, 12))
        self.fileDescLabel2 = swing.JLabel(
            "Supported files: .gnamp, .nessus, .txt")
        self.fileDescLabel2.setFont(Font("Tahoma", 0, 12))
        self.parseFileButton = swing.JButton("Load File to Parse",
                                             actionPerformed=self.loadFile)
        self.urlLabel = swing.JLabel("URL List")
        self.urlLabel.setFont(Font("Tahoma", 1, 12))
        self.urlDescLabel = swing.JLabel(
            "URLs in this list should be in the format: protocol://host:port/optional-path"
        )
        self.urlDescLabel.setFont(Font("Tahoma", 0, 12))
        self.urlDescLabel2 = swing.JLabel(
            "Example: https://127.0.0.1:443/index. Port is optional, 80 or 443 will be assumed."
        )
        self.urlDescLabel2.setFont(Font("Tahoma", 0, 12))
        self.pasteButton = swing.JButton("Paste", actionPerformed=self.paste)
        self.loadButton = swing.JButton("Copy List",
                                        actionPerformed=self.setClipboardText)
        self.removeButton = swing.JButton("Remove",
                                          actionPerformed=self.remove)
        self.clearButton = swing.JButton("Clear", actionPerformed=self.clear)
        self.urlListModel = swing.DefaultListModel()
        self.urlList = swing.JList(self.urlListModel)
        self.urlListPane = swing.JScrollPane(self.urlList)
        self.addButton = swing.JButton("Add", actionPerformed=self.addURL)
        self.runLabel = swing.JLabel(
            "<html>Click the <b>RUN</b> button to attempt a connection to each URL in the URL List.  Successful connections will be added to Burp's sitemap.</html>"
        )
        self.runLabel.setFont(Font("Tahoma", 0, 12))
        self.redirectsCheckbox = swing.JCheckBox(
            "Enable: Follow Redirects (301 or 302 Response)")
        self.runButton = swing.JButton("RUN", actionPerformed=self.runClicked)
        self.runButton.setFont(Font("Tahoma", 1, 12))
        self.addUrlField = swing.JTextField("New URL...",
                                            focusGained=self.clearField,
                                            focusLost=self.fillField)
        self.logLabel = swing.JLabel("Log:")
        self.logLabel.setFont(Font("Tahoma", 1, 12))
        self.logPane = swing.JScrollPane()
        self.logArea = swing.JTextArea(
            "Burp Importer Log - Parsing and Run details will be appended here.\n"
        )
        self.logArea.setLineWrap(True)
        self.logPane.setViewportView(self.logArea)
        self.webPortDict = {'80':'http','81':'http','82':'http','83':'http','443':'https','2301':'http','2381':'https','8000':'http','8008':'http','8080':'http','8083':'https','8180':'http','8400':'http',\
        '8443':'https','8834':'https','8888':'http','9001':'http','9043':'https','9080':'http','9090':'http','9100':'http','9443':'https'}
        self.bar = swing.JSeparator(swing.SwingConstants.HORIZONTAL)
        self.bar2 = swing.JSeparator(swing.SwingConstants.HORIZONTAL)
        layout = swing.GroupLayout(self.tab)
        self.tab.setLayout(layout)

        # Credit to Antonio Sánchez and https://github.com/Dionach/HeadersAnalyzer/
        layout.setHorizontalGroup(
            layout.createParallelGroup(swing.GroupLayout.Alignment.LEADING).
            addGroup(layout.createSequentialGroup().addGap(15).addGroup(
                layout.createParallelGroup(
                    swing.GroupLayout.Alignment.LEADING).addComponent(
                        self.titleLabel).addComponent(
                            self.infoLabel).addComponent(
                                self.fileOptionLabel).addComponent(
                                    self.fileDescLabel).addComponent(
                                        self.fileDescLabel2).addComponent(
                                            self.parseFileButton).addComponent(
                                                self.bar).addComponent(
                                                    self.urlLabel).
                addComponent(self.urlDescLabel).addComponent(
                    self.urlDescLabel2).addComponent(self.bar2).addComponent(
                        self.runLabel).addComponent(
                            self.redirectsCheckbox).addComponent(
                                self.runButton).addComponent(
                                    self.logPane,
                                    swing.GroupLayout.PREFERRED_SIZE, 525,
                                    swing.GroupLayout.PREFERRED_SIZE).
                addGroup(layout.createSequentialGroup().addGroup(
                    layout.createParallelGroup(
                        swing.GroupLayout.Alignment.TRAILING).
                    addComponent(self.addButton).addGroup(
                        layout.createParallelGroup(
                            swing.GroupLayout.Alignment.LEADING).addComponent(
                                self.logLabel).addGroup(
                                    layout.createParallelGroup(
                                        swing.GroupLayout.Alignment.TRAILING,
                                        False).addComponent(
                                            self.removeButton,
                                            swing.GroupLayout.DEFAULT_SIZE,
                                            swing.GroupLayout.DEFAULT_SIZE,
                                            lang.Short.MAX_VALUE).addComponent(
                                                self.pasteButton,
                                                swing.GroupLayout.DEFAULT_SIZE,
                                                swing.GroupLayout.DEFAULT_SIZE,
                                                lang.Short.MAX_VALUE).
                                    addComponent(
                                        self.loadButton,
                                        swing.GroupLayout.DEFAULT_SIZE,
                                        swing.GroupLayout.DEFAULT_SIZE,
                                        lang.Short.MAX_VALUE).addComponent(
                                            self.clearButton,
                                            swing.GroupLayout.DEFAULT_SIZE,
                                            swing.GroupLayout.PREFERRED_SIZE,
                                            lang.Short.MAX_VALUE)))
                ).addPreferredGap(
                    swing.LayoutStyle.ComponentPlacement.UNRELATED).addGroup(
                        layout.createParallelGroup(
                            swing.GroupLayout.Alignment.LEADING).addComponent(
                                self.urlListPane,
                                swing.GroupLayout.PREFERRED_SIZE, 350,
                                swing.GroupLayout.PREFERRED_SIZE).addComponent(
                                    self.addUrlField,
                                    swing.GroupLayout.PREFERRED_SIZE, 350,
                                    swing.GroupLayout.PREFERRED_SIZE)))).
                     addContainerGap(26, lang.Short.MAX_VALUE)))

        layout.setVerticalGroup(
            layout.createParallelGroup(swing.GroupLayout.Alignment.LEADING).
            addGroup(
                layout.createSequentialGroup().addGap(15).addComponent(
                    self.titleLabel).addGap(10).addComponent(
                        self.infoLabel).addGap(10).addComponent(
                            self.fileOptionLabel).addGap(10).addComponent(
                                self.fileDescLabel).addGap(10).addComponent(
                                    self.fileDescLabel2).addGap(10).
                addComponent(self.parseFileButton).addGap(10).addComponent(
                    self.bar).addComponent(
                        self.urlLabel).addGap(10).addComponent(
                            self.urlDescLabel).addGap(10).
                addComponent(self.urlDescLabel2).addPreferredGap(
                    swing.LayoutStyle.ComponentPlacement.UNRELATED).addGroup(
                        layout.createParallelGroup(
                            swing.GroupLayout.Alignment.LEADING).
                        addGroup(layout.createSequentialGroup().addGroup(
                            layout.createParallelGroup(
                                swing.GroupLayout.Alignment.LEADING).
                            addGroup(layout.createSequentialGroup(
                            ).addComponent(self.pasteButton).addPreferredGap(
                                swing.LayoutStyle.ComponentPlacement.RELATED
                            ).addComponent(self.loadButton).addPreferredGap(
                                swing.LayoutStyle.ComponentPlacement.RELATED
                            ).addComponent(self.removeButton).addPreferredGap(
                                swing.LayoutStyle.ComponentPlacement.RELATED
                            ).addComponent(self.clearButton)).addComponent(
                                self.urlListPane,
                                swing.GroupLayout.PREFERRED_SIZE, 138,
                                swing.GroupLayout.PREFERRED_SIZE)).addGap(10).
                                 addGroup(
                                     layout.createParallelGroup(
                                         swing.GroupLayout.Alignment.BASELINE).
                                     addComponent(self.addButton).addComponent(
                                         self.addUrlField,
                                         swing.GroupLayout.PREFERRED_SIZE,
                                         swing.GroupLayout.DEFAULT_SIZE,
                                         swing.GroupLayout.PREFERRED_SIZE)))
                    ).addGap(10).addComponent(self.bar2).addComponent(
                        self.runLabel).addGap(10).addComponent(
                            self.redirectsCheckbox).addGap(10).addComponent(
                                self.runButton).addGap(10).
                addComponent(self.logLabel).addPreferredGap(
                    swing.LayoutStyle.ComponentPlacement.RELATED).addGap(
                        8, 8, 8).addComponent(
                            self.logPane, swing.GroupLayout.PREFERRED_SIZE,
                            125,
                            swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(
                                swing.LayoutStyle.ComponentPlacement.RELATED
                            ).addContainerGap(swing.GroupLayout.DEFAULT_SIZE,
                                              lang.Short.MAX_VALUE)))
        return
Пример #20
0
 def registerExtenderCallbacks(self, callbacks):
 
     # keep a reference to our callbacks object
     self._callbacks = callbacks
     # obtain an extension helpers object
     self._helpers = callbacks.getHelpers()
     # set our extension name
     self._callbacks.setExtensionName("NMAP Parser")
     # Variable to store Location of .xml
     self._fileLocation = None
     # build UI
     self._jPanel = swing.JPanel()
     boxVertical = swing.Box.createVerticalBox()
     boxHorizontal = swing.Box.createHorizontalBox()
     getFileButton = swing.JButton('Open Nmap .xml File',actionPerformed=self.getFile)
     self._fileText = swing.JTextArea("", 1, 50)
     boxHorizontal.add(getFileButton)
     boxHorizontal.add(self._fileText)
     boxVertical.add(boxHorizontal)
     boxHorizontal = swing.Box.createHorizontalBox()
     boxHorizontal.add(swing.JLabel("Enter Ports to Parse (Ex: 80, 443)"))
     boxVertical.add(boxHorizontal)
     boxHorizontal = swing.Box.createHorizontalBox()
     boxHorizontal.add(swing.JLabel("Multiple queries can be added, seperated by a space."))
     boxVertical.add(boxHorizontal)
     boxHorizontal = swing.Box.createHorizontalBox()
     self._portField = swing.JTextField('',30)
     boxHorizontal.add(self._portField)
     boxVertical.add(boxHorizontal)
     boxHorizontal = swing.Box.createHorizontalBox()
     boxHorizontal.add(swing.JLabel("Enter Keywords in Service Name to Parse (Ex: web, http)"))
     boxVertical.add(boxHorizontal)
     boxHorizontal = swing.Box.createHorizontalBox()
     boxHorizontal.add(swing.JLabel("Multiple queries can be added, seperated by a space."))
     boxVertical.add(boxHorizontal)
     boxHorizontal = swing.Box.createHorizontalBox()
     self._serviceField = swing.JTextField('',30)
     boxHorizontal.add(self._serviceField)
     boxVertical.add(boxHorizontal)
     boxHorizontal = swing.Box.createHorizontalBox()
     self._spiderCheckBox = swing.JCheckBox('Spider Found Hosts')
     boxHorizontal.add(self._spiderCheckBox)
     boxVertical.add(boxHorizontal)
     boxHorizontal = swing.Box.createHorizontalBox()
     self._hostNameCheckBox = swing.JCheckBox('Use Hostname if Found')
     boxHorizontal.add(self._hostNameCheckBox)
     boxVertical.add(boxHorizontal)
     boxHorizontal = swing.Box.createHorizontalBox()
     submitQueryButton = swing.JButton('Parse NMAP File',actionPerformed=self.nmapParse)
     boxHorizontal.add(submitQueryButton)
     clearSearchButton = swing.JButton('Clear Output',actionPerformed=self.clearOutput)
     boxHorizontal.add(clearSearchButton)
     boxVertical.add(boxHorizontal)
     boxHorizontal = swing.Box.createHorizontalBox()
     boxHorizontal.add(swing.JLabel("Output"))
     boxVertical.add(boxHorizontal)
     boxHorizontal = swing.Box.createHorizontalBox()
     self._resultsTextArea = swing.JTextArea()
     resultsOutput = swing.JScrollPane(self._resultsTextArea)
     resultsOutput.setPreferredSize(Dimension(500,200))
     boxHorizontal.add(resultsOutput)
     boxVertical.add(boxHorizontal)
     self._jPanel.add(boxVertical)
     # add the custom tab to Burp's UI
     self._callbacks.addSuiteTab(self)
     return
Пример #21
0
    def createGui(self):

        mpanel = swing.JPanel(java.awt.BorderLayout())
        self.available = jlist = swing.JList()
        jlist.setVisibleRowCount(5)
        jlsp = swing.JScrollPane(jlist)
        self.addTitledBorder(jlsp, "Members")

        #jlist.setListData( ("catssssssssss", "rats" ))
        mpanel.add(jlsp, java.awt.BorderLayout.WEST)
        jtp = swing.JTabbedPane()
        mpanel.add(jtp, java.awt.BorderLayout.CENTER)

        tpanel = swing.JPanel()
        slayout = swing.SpringLayout()
        tpanel.setLayout(slayout)
        jtp.addTab("Messages", tpanel)
        self.jta = jta = swing.JTextArea()
        jsp = swing.JScrollPane(jta)
        self.addTitledBorder(jsp, "Instant Messages")
        jsp.setPreferredSize(java.awt.Dimension(500, 200))
        tpanel.add(jsp)
        slayout.putConstraint(slayout.NORTH, jsp, 5, slayout.NORTH, tpanel)
        slayout.putConstraint(slayout.EAST, tpanel, 5, slayout.EAST, jsp)
        self.sendmessage = jta2 = swing.JTextArea()
        jsp2 = swing.JScrollPane(jta2)
        self.addTitledBorder(jsp2, "Compose Message")
        jsp2.setPreferredSize(java.awt.Dimension(250, 200))
        tpanel.add(jsp2)
        slayout.putConstraint(slayout.NORTH, jsp2, 5, slayout.SOUTH, jsp)
        jb = swing.JButton("Send Message")
        jb.actionPerformed = lambda event: self.sendMessage()
        tpanel.add(jb)
        slayout.putConstraint(slayout.NORTH, jb, 0, slayout.NORTH, jsp2)
        slayout.putConstraint(slayout.WEST, jb, 5, slayout.EAST, jsp2)
        jb2 = swing.JButton("Clear")
        jb2.actionPerformed = lambda event: self.sendmessage.setText("")
        tpanel.add(jb2)
        slayout.putConstraint(slayout.NORTH, jb2, 5, slayout.SOUTH, jb)
        slayout.putConstraint(slayout.WEST, jb2, 5, slayout.EAST, jsp2)
        slayout.putConstraint(slayout.SOUTH, tpanel, 5, slayout.SOUTH, jsp2)

        npanel = swing.JPanel()
        slayout = swing.SpringLayout()
        npanel.setLayout(slayout)
        jtp.addTab("Nodes", npanel)
        self.table = jtable = swing.JTable()

        self.dtm = dtm = swing.table.DefaultTableModel()
        dtm.addColumn("From")
        dtm.addColumn("Node Name")
        jtable.setModel(dtm)
        jsp3 = swing.JScrollPane(jtable)
        jsp3.setPreferredSize(java.awt.Dimension(500, 200))
        npanel.add(jsp3)
        slayout.putConstraint(slayout.NORTH, jsp3, 5, slayout.NORTH, npanel)
        slayout.putConstraint(slayout.EAST, npanel, 5, slayout.EAST, jsp3)
        jb3 = swing.JButton("Send Current Node To")
        jb3.actionPerformed = lambda event: self.sendNode()
        npanel.add(jb3)
        slayout.putConstraint(slayout.NORTH, jb3, 5, slayout.SOUTH, jsp3)
        slayout.putConstraint(slayout.SOUTH, npanel, 5, slayout.SOUTH, jb3)
        jb4 = swing.JButton("Insert Selected Row")
        jb4.actionPerformed = lambda event: self.insertNode()
        npanel.add(jb4)
        slayout.putConstraint(slayout.NORTH, jb4, 0, slayout.NORTH, jb3)
        slayout.putConstraint(slayout.EAST, jb4, 0, slayout.EAST, jsp3)
        jf = swing.JFrame()
        jf.add(mpanel)
        jf.pack()
        jf.visible = 1
Пример #22
0
    def registerExtenderCallbacks(self, callbacks):
        # keep a reference to our callbacks object
        self._callbacks = callbacks
        # obtain an extension helpers object
        self._helpers = callbacks.getHelpers()
        # set our extension name
        self._callbacks.setExtensionName(self.name)
        # lists of hosts with querys

        self._dictPayloads = {}
        self._dictPayloads_headers = {}
        self._dictPayloads_params = {}
        self._dictHeaders = {}
        self._dictParams = {}

        self.status_flag = False
        self.table_flag = 0
        self.start_button_text = 'Run proxy'
        self._layout = GridBagLayout()
        self._jPanel.setLayout(self._layout)

        self._jPanel.setBounds(0, 0, 1000, 1000)
        self._jLabelTechniques = JLabel("Your URL (my.burpcollaborator.net):")
        self._jPanelConstraints.fill = GridBagConstraints.HORIZONTAL
        self._jPanelConstraints.gridx = 0
        self._jPanelConstraints.gridy = 1
        self._jPanelConstraints.gridwidth = 2
        self._jPanelConstraints.gridheight = 1
        self._jPanelConstraints.insets = Insets(0, 0, 10, 0)
        self._jPanel.add(self._jLabelTechniques, self._jPanelConstraints)

        self._jTextFieldURL = JTextField("", 30)
        self._jPanelConstraints.fill = GridBagConstraints.HORIZONTAL
        self._jPanelConstraints.gridx = 2
        self._jPanelConstraints.gridy = 1
        self._jPanelConstraints.gridwidth = 4
        self._jPanelConstraints.gridheight = 1
        self._jPanelConstraints.insets = Insets(0, 0, 10, 0)
        self._jPanel.add(self._jTextFieldURL, self._jPanelConstraints)

        self._jLabelTechniques = JLabel("Press to start:")
        self._jPanelConstraints.fill = GridBagConstraints.HORIZONTAL
        self._jPanelConstraints.anchor = GridBagConstraints.WEST
        self._jPanelConstraints.gridx = 0
        self._jPanelConstraints.gridy = 0
        self._jPanelConstraints.gridwidth = 2
        self._jPanelConstraints.gridheight = 1
        self._jPanelConstraints.insets = Insets(0, 0, 10, 0)
        self._jPanel.add(self._jLabelTechniques, self._jPanelConstraints)

        self.submitSearchButton = swing.JButton(
            self.start_button_text, actionPerformed=self.active_flag)
        self.submitSearchButton.setBackground(Color.WHITE)
        self._jPanelConstraints.fill = GridBagConstraints.HORIZONTAL
        self._jPanelConstraints.gridx = 2
        self._jPanelConstraints.gridy = 0
        self._jPanelConstraints.gridwidth = 4
        self._jPanelConstraints.gridheight = 1
        self._jPanelConstraints.insets = Insets(0, 0, 10, 0)
        self._jPanel.add(self.submitSearchButton, self._jPanelConstraints)

        self._tableModelPayloads = DefaultTableModel()
        self._tableModelPayloads.addColumn("Payload")
        self._tableModelPayloads.addColumn("Using")

        self._tableModelHeaders = DefaultTableModel()
        self._tableModelHeaders.addColumn("Header")
        self._tableModelHeaders.addColumn("Using")

        self._tableModelParams = DefaultTableModel()
        self._tableModelParams.addColumn("Parameter")
        self._tableModelParams.addColumn("Using")

        self._table = JTable(self._tableModelPayloads)
        self._table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS)
        self._table.getModel().addTableModelListener(
            MyTableModelListener(self._table, self, 1))
        self._scrolltable = JScrollPane(self._table)
        self._scrolltable.setMinimumSize(Dimension(300, 200))
        self._jPanelConstraints.fill = GridBagConstraints.HORIZONTAL
        self._jPanelConstraints.gridx = 0
        self._jPanelConstraints.gridy = 2
        self._jPanelConstraints.gridwidth = 2
        self._jPanelConstraints.gridheight = 1
        self._jPanelConstraints.insets = Insets(0, 0, 0, 10)
        self._jPanel.add(self._scrolltable, self._jPanelConstraints)

        self._table = JTable(self._tableModelHeaders)
        self._table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS)
        self._table.getModel().addTableModelListener(
            MyTableModelListener(self._table, self, 2))
        self._scrolltable = JScrollPane(self._table)
        self._scrolltable.setMinimumSize(Dimension(300, 200))
        self._jPanelConstraints.fill = GridBagConstraints.HORIZONTAL
        self._jPanelConstraints.gridx = 2
        self._jPanelConstraints.gridy = 2
        self._jPanelConstraints.gridwidth = 2
        self._jPanelConstraints.gridheight = 1
        self._jPanelConstraints.insets = Insets(0, 0, 0, 10)
        self._jPanel.add(self._scrolltable, self._jPanelConstraints)

        self._table = JTable(self._tableModelParams)
        self._table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS)
        self._table.getModel().addTableModelListener(
            MyTableModelListener(self._table, self, 3))
        self._scrolltable = JScrollPane(self._table)
        self._scrolltable.setMinimumSize(Dimension(300, 200))
        self._jPanelConstraints.fill = GridBagConstraints.HORIZONTAL
        self._jPanelConstraints.gridx = 4
        self._jPanelConstraints.gridy = 2
        self._jPanelConstraints.gridwidth = 2
        self._jPanelConstraints.gridheight = 1
        self._jPanelConstraints.insets = Insets(0, 0, 0, 0)
        self._jPanel.add(self._scrolltable, self._jPanelConstraints)

        addPayloadButton = swing.JButton('Add',
                                         actionPerformed=self.addToPayload)
        addPayloadButton.setBackground(Color.WHITE)
        addPayloadButton.setPreferredSize(Dimension(150, 40))
        self._jPanelConstraints.fill = GridBagConstraints.HORIZONTAL
        # self._jPanelConstraints.anchor = GridBagConstraints.CENTER
        self._jPanelConstraints.gridx = 1
        self._jPanelConstraints.gridy = 3
        self._jPanelConstraints.gridwidth = 1
        self._jPanelConstraints.gridheight = 1
        self._jPanelConstraints.insets = Insets(3, 0, 0, 10)
        self._jPanel.add(addPayloadButton, self._jPanelConstraints)

        deletePayloadButton = swing.JButton(
            'Delete', actionPerformed=self.deleteToPayload)
        deletePayloadButton.setBackground(Color.WHITE)
        deletePayloadButton.setPreferredSize(Dimension(150, 40))
        self._jPanelConstraints.fill = GridBagConstraints.HORIZONTAL
        self._jPanelConstraints.gridx = 0
        self._jPanelConstraints.gridy = 3
        self._jPanelConstraints.gridwidth = 1
        self._jPanelConstraints.gridheight = 1
        self._jPanelConstraints.insets = Insets(3, 0, 0, 0)
        self._jPanel.add(deletePayloadButton, self._jPanelConstraints)

        addHeaderButton = swing.JButton('Add',
                                        actionPerformed=self.addToHeader)
        addHeaderButton.setBackground(Color.WHITE)
        addHeaderButton.setPreferredSize(Dimension(150, 40))
        self._jPanelConstraints.fill = GridBagConstraints.HORIZONTAL
        # self._jPanelConstraints.anchor = GridBagConstraints.CENTER
        self._jPanelConstraints.gridx = 3
        self._jPanelConstraints.gridy = 3
        self._jPanelConstraints.gridwidth = 1
        self._jPanelConstraints.gridheight = 1
        self._jPanelConstraints.insets = Insets(3, 0, 0, 10)
        self._jPanel.add(addHeaderButton, self._jPanelConstraints)

        deleteHeaderButton = swing.JButton('Delete',
                                           actionPerformed=self.deleteToHeader)
        deleteHeaderButton.setBackground(Color.WHITE)
        deleteHeaderButton.setPreferredSize(Dimension(150, 40))
        self._jPanelConstraints.fill = GridBagConstraints.HORIZONTAL
        self._jPanelConstraints.gridx = 2
        self._jPanelConstraints.gridy = 3
        self._jPanelConstraints.gridwidth = 1
        self._jPanelConstraints.gridheight = 1
        self._jPanelConstraints.insets = Insets(3, 0, 0, 0)
        self._jPanel.add(deleteHeaderButton, self._jPanelConstraints)

        addParamsButton = swing.JButton('Add',
                                        actionPerformed=self.addToParams)
        addParamsButton.setBackground(Color.WHITE)
        addParamsButton.setPreferredSize(Dimension(150, 40))
        self._jPanelConstraints.fill = GridBagConstraints.HORIZONTAL
        # self._jPanelConstraints.anchor = GridBagConstraints.CENTER
        self._jPanelConstraints.gridx = 5
        self._jPanelConstraints.gridy = 3
        self._jPanelConstraints.gridwidth = 1
        self._jPanelConstraints.gridheight = 1
        self._jPanelConstraints.insets = Insets(3, 0, 0, 0)
        self._jPanel.add(addParamsButton, self._jPanelConstraints)

        deleteParamsButton = swing.JButton('Delete',
                                           actionPerformed=self.deleteToParams)
        deleteParamsButton.setBackground(Color.WHITE)
        deleteParamsButton.setPreferredSize(Dimension(150, 40))
        self._jPanelConstraints.fill = GridBagConstraints.HORIZONTAL
        self._jPanelConstraints.gridx = 4
        self._jPanelConstraints.gridy = 3
        self._jPanelConstraints.gridwidth = 1
        self._jPanelConstraints.gridheight = 1
        self._jPanelConstraints.insets = Insets(3, 0, 0, 0)
        self._jPanel.add(deleteParamsButton, self._jPanelConstraints)

        self._resultsTextArea = swing.JTextArea()
        resultsOutput = swing.JScrollPane(self._resultsTextArea)
        resultsOutput.setMinimumSize(Dimension(800, 200))
        self._jPanelConstraints.fill = GridBagConstraints.HORIZONTAL
        self._jPanelConstraints.gridx = 0
        self._jPanelConstraints.gridy = 4
        self._jPanelConstraints.gridwidth = 6
        self._jPanelConstraints.gridheight = 1
        self._jPanelConstraints.insets = Insets(10, 0, 0, 0)
        self._jPanel.add(resultsOutput, self._jPanelConstraints)

        self.clearSearchButton = swing.JButton(
            'Clear Search Output', actionPerformed=self.clearOutput)
        self._jPanelConstraints.fill = GridBagConstraints.HORIZONTAL
        # self._jPanelConstraints.anchor = GridBagConstraints.CENTER
        self._jPanelConstraints.gridx = 2
        self._jPanelConstraints.gridy = 5
        self._jPanelConstraints.gridwidth = 2
        self._jPanelConstraints.gridheight = 1
        self._jPanelConstraints.insets = Insets(3, 0, 0, 0)
        self._jPanel.add(self.clearSearchButton, self._jPanelConstraints)

        self._callbacks.customizeUiComponent(self._jPanel)

        self._callbacks.addSuiteTab(self)
        # register ourselves as an HTTP listener
        self._callbacks.registerHttpListener(self)

        return
    def registerExtenderCallbacks(self, callbacks):
        # Required for easier debugging:
        # https://github.com/securityMB/burp-exceptions
        sys.stdout = callbacks.getStdout()

        # Keep a reference to our callbacks object
        self.callbacks = callbacks

        # Set our extension name
        self.callbacks.setExtensionName("AES Plugin by XzC")

        # Create the tab
        self.tab = swing.JPanel(BorderLayout())

        # Create the text area at the top of the tab
        textPanel = swing.JPanel()

        # Create the label for the text area
        boxVertical = swing.Box.createVerticalBox()
        boxHorizontal = swing.Box.createHorizontalBox()
        textLabel = swing.JLabel("Text to be encoded/decoded/hashed")
        boxHorizontal.add(textLabel)
        boxVertical.add(boxHorizontal)

        # Create the text area itself
        boxHorizontal = swing.Box.createHorizontalBox()
        self.textArea = swing.JTextArea('', 6, 100)
        self.textArea.setLineWrap(True)
        boxHorizontal.add(self.textArea)
        boxVertical.add(boxHorizontal)

        # Add the text label and area to the text panel
        textPanel.add(boxVertical)

        # Add the text panel to the top of the main tab
        self.tab.add(textPanel, BorderLayout.NORTH)

        # Created a tabbed pane to go in the center of the
        # main tab, below the text area
        tabbedPane = swing.JTabbedPane()
        self.tab.add("Center", tabbedPane)

        # First tab
        firstTab = swing.JPanel()
        firstTab.layout = BorderLayout()
        tabbedPane.addTab("Encode", firstTab)

        # Button for first tab
        buttonPanel = swing.JPanel()
        buttonPanel.add(swing.JButton('Encode', actionPerformed=self.encrypt))
        firstTab.add(buttonPanel, "North")

        # Panel for the encoders. Each label and text field
        # will go in horizontal boxes which will then go in
        # a vertical box
        encPanel = swing.JPanel()
        boxVertical = swing.Box.createVerticalBox()

        boxHorizontal = swing.Box.createHorizontalBox()
        self.b74EncField = swing.JTextField('', 75)
        boxHorizontal.add(swing.JLabel("  Encode   :"))
        boxHorizontal.add(self.b74EncField)
        boxVertical.add(boxHorizontal)

        # Add the vertical box to the Encode tab
        firstTab.add(boxVertical, "Center")
        #
        #
        #
        # Second tab
        secondTab = swing.JPanel()
        secondTab.layout = BorderLayout()
        tabbedPane.addTab("Decode", secondTab)
        # Button for first tab
        buttonPanel = swing.JPanel()
        buttonPanel.add(swing.JButton('Decode', actionPerformed=self.decrypt))
        secondTab.add(buttonPanel, "North")

        # Panel for the encoders. Each label and text field
        # will go in horizontal boxes which will then go in
        # a vertical box
        encPanel = swing.JPanel()
        boxVertical = swing.Box.createVerticalBox()

        boxHorizontal = swing.Box.createHorizontalBox()
        self.b64EncField = swing.JTextField('', 75)
        boxHorizontal.add(swing.JLabel("  Decode   :"))
        boxHorizontal.add(self.b64EncField)
        boxVertical.add(boxHorizontal)

        # Add the vertical box to the Encode tab
        secondTab.add(boxVertical, "Center")

        # Add the custom tab to Burp's UI
        callbacks.addSuiteTab(self)
        return
Пример #24
0
    def registerExtenderCallbacks(self, callbacks):
        print "Name: \t\t"      + BurpExtender.EXT_NAME
        print "Description: \t" + BurpExtender.EXT_DESC
        print "Authors: \t"      + BurpExtender.EXT_AUTHOR
        # Required for easier debugging:
        # https://github.com/securityMB/burp-exceptions
        sys.stdout = callbacks.getStdout()
        self._callbacks = callbacks
        self._helpers   = callbacks.getHelpers()
        callbacks.setExtensionName(BurpExtender.EXT_NAME)
        stdout = PrintWriter(callbacks.getStdout(), True)
        callbacks.registerContextMenuFactory(self)
        self.httpTraffic = None
        self.resp = None

        #Create panels used for layout; we must stack and layer to get the desired GUI
        self.tab = swing.Box(swing.BoxLayout.Y_AXIS)
        self.tabbedPane  = swing.JTabbedPane()
        self.tab.add(self.tabbedPane)
        
        # First tab
        self.duetTab = swing.Box(swing.BoxLayout.Y_AXIS)
        self.tabbedPane.addTab("MSSQLi-DUET", self.duetTab)
                
        # Create objects for the first tab's GUI
        # These rows will add top to bottom on the Y Axis
        self.t1r1 = swing.JPanel(FlowLayout())
        self.t1r2 = swing.JPanel(FlowLayout())
        self.t1r3 = swing.JPanel(FlowLayout())
        self.t1r4 = swing.JPanel(FlowLayout())
        self.t1r5 = swing.JPanel(FlowLayout())
        self.t1r6 = swing.JPanel(FlowLayout())
        self.t1r7 = swing.JPanel(FlowLayout())

        # Now add content to the first tab's GUI objects
        self.encodingBox = swing.JComboBox(["None","unicode","unicode_unescaped","doubleencode","unmagicquotes"])
        self.delayBox = swing.JTextField("0",3)
        self.ridMinBox = swing.JTextField("1000",5)
        self.ridMaxBox = swing.JTextField("1500",5)
        self.paramBox = swing.JTextField("",15)
        self.injectBox = swing.JTextField("",15)
        self.outputTxt = swing.JTextArea(10,50)
        self.outputScroll = swing.JScrollPane(self.outputTxt)
        self.requestTxt = swing.JTextArea(10,50)
        self.requestScroll = swing.JScrollPane(self.requestTxt)
        self.requestTxt.setLineWrap(True)
        self.outputTxt.setBackground(Color.lightGray)
        self.outputTxt.setEditable(False)
        self.outputTxt.setLineWrap(True)
       
        self.t1r1.add(swing.JLabel("<html><center><h2>MSSQLi-DUET</h2>Enumerate Active Directory users, groups, and machines via SQL injection.</center></html>"))
        
        #Add labels here for all of the args needed.
        self.t1r2.add(swing.JLabel("WAF Bypass Method:"))
        self.t1r2.add(self.encodingBox)
        
        #Minimum RID value
        self.t1r2.add(swing.JLabel("Minimum RID value:"))
        self.t1r2.add(self.ridMinBox)
        #Maximum RID value
        self.t1r2.add(swing.JLabel("Maximum RID value:"))
        self.t1r2.add(self.ridMaxBox)
        #Delay for requests
        self.t1r2.add(swing.JLabel("Delay:"))
        self.t1r2.add(self.delayBox)
        #Vulnerable parameter
        self.t1r3.add(swing.JLabel("Vulnerable Parameter:"))
        self.t1r3.add(self.paramBox)
        #Injection starting point
        self.t1r3.add(swing.JLabel("Injection start:"))
        self.t1r3.add(self.injectBox)

        #Request section
        self.t1r4.add(swing.JLabel("Raw request:"))
        self.t1r4.add(self.requestScroll)       
        self.t1r5.add(swing.JButton("Run", actionPerformed=self.executePayload))
        self.t1r5.add(swing.JButton("Clear", actionPerformed=self.clearRequest))  

        #Results section
        self.t1r6.add(swing.JLabel("Results Output:"))
        self.t1r6.add(self.outputScroll) 
        self.t1r7.add(swing.JButton("Copy results to Clipboard", actionPerformed=self.copyToClipboard))
        self.t1r7.add(swing.JButton("Clear", actionPerformed=self.clearOutput)) 

        # Add the GUI objects into the first tab
        self.duetTab.add(self.t1r1)
        self.duetTab.add(self.t1r2)
        self.duetTab.add(self.t1r3)
        self.duetTab.add(self.t1r4)
        self.duetTab.add(self.t1r5)
        self.duetTab.add(self.t1r6)
        self.duetTab.add(self.t1r7)
       
        # Now that the GUI objects are added, we can resize them to fit snug in the UI
        self.t1r1.setMaximumSize(Dimension(850, 100))
        self.t1r2.setMaximumSize(Dimension(875, 50))
        self.t1r3.setMaximumSize(Dimension(800, 75))
        self.t1r4.setMaximumSize(Dimension(800, 200))
        self.t1r5.setMaximumSize(Dimension(800, 50))
        self.t1r6.setMaximumSize(Dimension(800, 200))
        self.t1r7.setMaximumSize(Dimension(800, 200))
        #Register the panel in the Burp GUI
        callbacks.addSuiteTab(self)
        return
Пример #25
0
 def __init__(self):
     stable.DefaultTableCellRenderer.__init__(self)
     self._component = swing.JTextArea()
     self._component.setLineWrap(True)
     self._label = swing.JTextField()
     self._label.setMargin(awt.Insets(0, 0, 0, 0))
Пример #26
0
    def registerExtenderCallbacks(self, callbacks):
        self._callbacks = callbacks
        self._helpers = callbacks.getHelpers()
        callbacks.setExtensionName("Encoder")
        callbacks.registerContextMenuFactory(self)
        callbacks.registerIntruderPayloadProcessor(self)

        #Create Jpanel
        self._jPanel = swing.JPanel()
        self._jPanel.setLayout(None)
        self._jPanel.setPreferredSize(awt.Dimension(1200, 1200))

        #Values for the combination boxes
        algOptions = [
            'Algorithm...', 'UTF-7', 'UTF-8', 'URL', 'Base64', 'XML', 'Binary',
            'Overlong', 'zlib deflate'
        ]
        hashOptions = [
            'Hash...', 'md5', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512'
        ]

        #GUI Components
        self.jEncode = swing.JRadioButton('Encode',
                                          actionPerformed=self.encodeButton)
        self.jDecode = swing.JRadioButton('Decode',
                                          actionPerformed=self.decodeButton)
        self.jAlgMenu = swing.JComboBox(algOptions)
        self.jInput = swing.JTextArea()
        self.jInputLabel = swing.JLabel()
        self.jOutput = swing.JTextArea()
        self.jInputScroll = swing.JScrollPane(self.jOutput)
        self.jOutputScroll = swing.JScrollPane(self.jOutput)
        self.jOutputLabel = swing.JLabel()
        self.jHashLabel = swing.JLabel()
        self.jHashMenu = swing.JComboBox(hashOptions)
        self.jStart = swing.JButton('Go', actionPerformed=self.doStart)
        self.jHex = swing.JRadioButton('Hex', actionPerformed=self.toHex)
        self.jString = swing.JRadioButton('String',
                                          actionPerformed=self.toString)
        self.jOutputFormat = swing.ButtonGroup()
        self.jSendToRequest = swing.JButton('Send to request',
                                            actionPerformed=self.sendToRequest)
        self.jToInput = swing.JButton('Send to Input',
                                      actionPerformed=self.toInput)
        self.jNextHistory = swing.JButton('>',
                                          actionPerformed=self.nextHistory)
        self.jPreviousHistory = swing.JButton(
            '<', actionPerformed=self.previousHistory)

        #Input and Ouptut scroll
        self.jOutputScroll = swing.JScrollPane(
            swing.JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
            swing.JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED)
        self.jOutputScroll.viewport.view = self.jOutput
        self.jInputScroll = swing.JScrollPane(
            swing.JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
            swing.JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED)
        self.jInputScroll.viewport.view = self.jInput
        #Add buttons to group
        self.jOutputFormat.add(self.jString)
        self.jOutputFormat.add(self.jHex)

        #Configure GUIs

        self.jEncode.setSelected(True)
        self.jDecode.setSelected(False)
        self.jAlgMenu.setSelectedIndex(0)
        self.jInput.setLineWrap(True)
        self.jOutput.setLineWrap(True)
        self.jOutput.setEditable(False)
        self.jHashMenu.setSelectedIndex(0)
        self.jString.setSelected(True)

        #Component Locations

        self.jEncode.setBounds(15, 15, 70, 20)
        self.jDecode.setBounds(85, 15, 70, 20)
        self.jAlgMenu.setBounds(15, 45, 140, 25)
        self.jHashMenu.setBounds(15, 80, 140, 25)
        self.jStart.setBounds(15, 115, 140, 20)
        self.jSendToRequest.setBounds(15, 145, 140, 20)
        self.jHex.setBounds(15, 175, 70, 20)
        self.jString.setBounds(85, 175, 70, 20)
        self.jInputScroll.setBounds(165, 15, 800, 200)
        self.jOutputScroll.setBounds(165, 225, 800, 200)
        self.jToInput.setBounds(15, 405, 140, 20)
        self.jNextHistory.setBounds(85, 465, 70, 20)
        self.jPreviousHistory.setBounds(15, 465, 70, 20)

        #Add components to Panel
        self._jPanel.add(self.jEncode)
        self._jPanel.add(self.jDecode)
        self._jPanel.add(self.jAlgMenu)
        self._jPanel.add(self.jHashMenu)
        self._jPanel.add(self.jInputScroll)
        self._jPanel.add(self.jOutputScroll)
        self._jPanel.add(self.jStart)
        self._jPanel.add(self.jHex)
        self._jPanel.add(self.jString)
        self._jPanel.add(self.jSendToRequest)
        self._jPanel.add(self.jToInput)
        self._jPanel.add(self.jNextHistory)
        self._jPanel.add(self.jPreviousHistory)

        callbacks.customizeUiComponent(self._jPanel)
        callbacks.addSuiteTab(self)

        # set some values
        self._inputHex = False
        self._outputHex = False

        return
Пример #27
0
    def registerExtenderCallbacks(self, callbacks):
    
        # Required for easier debugging: 
        # https://github.com/securityMB/burp-exceptions
        sys.stdout = callbacks.getStdout()

        # Keep a reference to our callbacks object
        self.callbacks = callbacks

        # Set our extension name
        self.callbacks.setExtensionName("Encode/Decode/Hash")
        
        # Create the tab
        self.tab = swing.JPanel(BorderLayout())

        # Create the text area at the top of the tab
        textPanel = swing.JPanel()
        
        # Create the label for the text area
        boxVertical = swing.Box.createVerticalBox()
        boxHorizontal = swing.Box.createHorizontalBox()
        textLabel = swing.JLabel("Text to be encoded/decoded/hashed")
        boxHorizontal.add(textLabel)
        boxVertical.add(boxHorizontal)

        # Create the text area itself
        boxHorizontal = swing.Box.createHorizontalBox()
        self.textArea = swing.JTextArea('', 6, 100)
        self.textArea.setLineWrap(True)
        scroll = swing.JScrollPane(self.textArea)
        boxHorizontal.add(scroll)
        boxVertical.add(boxHorizontal)

        # Add the text label and area to the text panel
        textPanel.add(boxVertical)

        # Add the text panel to the top of the main tab
        self.tab.add(textPanel, BorderLayout.NORTH)

        # Created a tabbed pane to go in the center of the
        # main tab, below the text area
        tabbedPane = swing.JTabbedPane()
        self.tab.add("Center", tabbedPane);

        # First tab
        firstTab = swing.JPanel()
        firstTab.layout = BorderLayout()
        tabbedPane.addTab("Encode", firstTab)

        # Button for first tab
        buttonPanel = swing.JPanel()
        buttonPanel.add(swing.JButton('Encode', actionPerformed=self.handleButtonClick))
        firstTab.add(buttonPanel, "North")

        # Panel for the encoders. Each label and text field
        # will go in horizontal boxes which will then go in 
        # a vertical box
        encPanel = swing.JPanel()
        boxVertical = swing.Box.createVerticalBox()
        
        boxHorizontal = swing.Box.createHorizontalBox()
        self.b64EncField = swing.JTextArea('', 3, 65)
        self.b64EncField.setLineWrap(True)
        scroll = swing.JScrollPane(self.b64EncField)
        boxHorizontal.add(swing.JLabel("  Base64   :"))
        boxHorizontal.add(scroll)
        boxVertical.add(boxHorizontal)

        boxHorizontal = swing.Box.createHorizontalBox()
        self.urlEncField = swing.JTextArea('', 3, 65)
        self.urlEncField.setLineWrap(True)
        scroll = swing.JScrollPane(self.urlEncField)
        boxHorizontal.add(swing.JLabel("  URL         :"))
        boxHorizontal.add(scroll)
        boxVertical.add(boxHorizontal)

        boxHorizontal = swing.Box.createHorizontalBox()
        self.asciiHexEncField = swing.JTextArea('', 3, 65)
        self.asciiHexEncField.setLineWrap(True)
        scroll = swing.JScrollPane(self.asciiHexEncField)
        boxHorizontal.add(swing.JLabel("  Ascii Hex :"))
        boxHorizontal.add(scroll)
        boxVertical.add(boxHorizontal)

        boxHorizontal = swing.Box.createHorizontalBox()
        self.htmlEncField = swing.JTextArea('', 3, 65)
        self.htmlEncField.setLineWrap(True)
        scroll = swing.JScrollPane(self.htmlEncField)
        boxHorizontal.add(swing.JLabel("  HTML       :"))
        boxHorizontal.add(scroll)
        boxVertical.add(boxHorizontal)

        boxHorizontal = swing.Box.createHorizontalBox()
        self.jsEncField = swing.JTextArea('', 3, 65)
        self.jsEncField.setLineWrap(True)
        scroll = swing.JScrollPane(self.jsEncField)
        boxHorizontal.add(swing.JLabel("  JavaScript:"))
        boxHorizontal.add(scroll)
        boxVertical.add(boxHorizontal)

        # Add the vertical box to the Encode tab
        firstTab.add(boxVertical, "Center")

        # Repeat the same process for the remaining tabs
        secondTab = swing.JPanel()
        secondTab.layout = BorderLayout()
        tabbedPane.addTab("Decode", secondTab)

        buttonPanel = swing.JPanel()
        buttonPanel.add(swing.JButton('Decode', actionPerformed=self.handleButtonClick))
        secondTab.add(buttonPanel, "North")

        decPanel = swing.JPanel()
        boxVertical = swing.Box.createVerticalBox()
        
        boxHorizontal = swing.Box.createHorizontalBox()
        self.b64DecField = swing.JTextArea('', 3, 65)
        self.b64DecField.setLineWrap(True)
        scroll = swing.JScrollPane(self.b64DecField)
        boxHorizontal.add(swing.JLabel("  Base64   :"))
        boxHorizontal.add(scroll)
        boxVertical.add(boxHorizontal)

        boxHorizontal = swing.Box.createHorizontalBox()
        self.urlDecField = swing.JTextArea('', 3, 65)
        self.urlDecField.setLineWrap(True)
        scroll = swing.JScrollPane(self.urlDecField)
        boxHorizontal.add(swing.JLabel("  URL         :"))
        boxHorizontal.add(scroll)
        boxVertical.add(boxHorizontal)

        boxHorizontal = swing.Box.createHorizontalBox()
        self.asciiHexDecField = swing.JTextArea('', 3, 75)
        self.asciiHexDecField.setLineWrap(True)
        scroll = swing.JScrollPane(self.asciiHexDecField)
        boxHorizontal.add(swing.JLabel("  Ascii Hex :"))
        boxHorizontal.add(scroll)
        boxVertical.add(boxHorizontal)

        boxHorizontal = swing.Box.createHorizontalBox()
        self.htmlDecField = swing.JTextArea('', 3, 75)
        self.htmlDecField.setLineWrap(True)
        scroll = swing.JScrollPane(self.htmlDecField)
        boxHorizontal.add(swing.JLabel("  HTML       :"))
        boxHorizontal.add(scroll)
        boxVertical.add(boxHorizontal)

        boxHorizontal = swing.Box.createHorizontalBox()
        self.jsDecField = swing.JTextArea('', 3, 65)
        self.jsDecField.setLineWrap(True)
        scroll = swing.JScrollPane(self.jsDecField)
        boxHorizontal.add(swing.JLabel("  JavaScript:"))
        boxHorizontal.add(scroll)
        boxVertical.add(boxHorizontal)

        secondTab.add(boxVertical, "Center")

        thirdTab = swing.JPanel()
        thirdTab.layout = BorderLayout()
        tabbedPane.addTab("Hash", thirdTab)

        buttonPanel = swing.JPanel()
        buttonPanel.add(swing.JButton('Hash', actionPerformed=self.handleButtonClick))
        thirdTab.add(buttonPanel, "North")

        decPanel = swing.JPanel()
        boxVertical = swing.Box.createVerticalBox()
        
        boxHorizontal = swing.Box.createHorizontalBox()
        self.md5Field = swing.JTextField('', 75)
        boxHorizontal.add(swing.JLabel("  MD5        :"))
        boxHorizontal.add(self.md5Field)
        boxVertical.add(boxHorizontal)

        boxHorizontal = swing.Box.createHorizontalBox()
        self.sha1Field = swing.JTextField('', 75)
        boxHorizontal.add(swing.JLabel("  SHA-1     :"))
        boxHorizontal.add(self.sha1Field)
        boxVertical.add(boxHorizontal)

        boxHorizontal = swing.Box.createHorizontalBox()
        self.sha256Field = swing.JTextField('', 75)
        boxHorizontal.add(swing.JLabel("  SHA-256 :"))
        boxHorizontal.add(self.sha256Field)
        boxVertical.add(boxHorizontal)

        boxHorizontal = swing.Box.createHorizontalBox()
        self.sha512Field = swing.JTextField('', 75)
        boxHorizontal.add(swing.JLabel("  SHA-512 :"))
        boxHorizontal.add(self.sha512Field)
        boxVertical.add(boxHorizontal)

        boxHorizontal = swing.Box.createHorizontalBox()
        self.ntlmField = swing.JTextField('', 75)
        boxHorizontal.add(swing.JLabel("  NTLM       :"))
        boxHorizontal.add(self.ntlmField)
        boxVertical.add(boxHorizontal)

        thirdTab.add(boxVertical, "Center")

        # Add the custom tab to Burp's UI
        callbacks.addSuiteTab(self)
        return
Пример #28
0
  def registerExtenderCallbacks(self, callbacks):
    # Print information about the plugin, set extension name, setup basic stuff
    self.printHeader()
    callbacks.setExtensionName("SQLiPy")
    self._callbacks = callbacks
    self._helpers = callbacks.getHelpers()
    callbacks.registerContextMenuFactory(self)

    # Create SQLMap API configuration JPanel
    self._jPanel = swing.JPanel()
    self._jPanel.setLayout(awt.GridBagLayout())
    self._jPanelConstraints = awt.GridBagConstraints()

    # Create panel for IP info
    self._jLabelIPListen = swing.JLabel("Listen on IP:")
    self._jPanelConstraints.fill = awt.GridBagConstraints.HORIZONTAL
    self._jPanelConstraints.gridx = 0
    self._jPanelConstraints.gridy = 0
    self._jPanel.add(self._jLabelIPListen, self._jPanelConstraints)

    self._jTextFieldIPListen = swing.JTextField("",15)
    self._jPanelConstraints.fill = awt.GridBagConstraints.HORIZONTAL
    self._jPanelConstraints.gridx = 1
    self._jPanelConstraints.gridy = 0
    self._jPanel.add(self._jTextFieldIPListen, self._jPanelConstraints)

    # Create panel for Port info
    self._jLabelPortListen = swing.JLabel("Listen on Port:")
    self._jPanelConstraints.fill = awt.GridBagConstraints.HORIZONTAL
    self._jPanelConstraints.gridx = 0
    self._jPanelConstraints.gridy = 1
    self._jPanel.add(self._jLabelPortListen, self._jPanelConstraints)

    self._jTextFieldPortListen = swing.JTextField("",3)
    self._jPanelConstraints.fill = awt.GridBagConstraints.HORIZONTAL
    self._jPanelConstraints.gridx = 1
    self._jPanelConstraints.gridy = 1
    self._jPanel.add(self._jTextFieldPortListen, self._jPanelConstraints)

    # Create panel to contain Python button
    self._jLabelPython = swing.JLabel("Select Python:")
    self._jPanelConstraints.fill = awt.GridBagConstraints.HORIZONTAL
    self._jPanelConstraints.gridx = 0
    self._jPanelConstraints.gridy = 2
    self._jPanel.add(self._jLabelPython, self._jPanelConstraints)

    self._jButtonSetPython = swing.JButton('Python', actionPerformed=self.setPython)
    self._jPanelConstraints.fill = awt.GridBagConstraints.HORIZONTAL
    self._jPanelConstraints.gridx = 1
    self._jPanelConstraints.gridy = 2
    self._jPanel.add(self._jButtonSetPython, self._jPanelConstraints)

    # Create panel to contain API button
    self._jLabelAPI = swing.JLabel("Select API:")
    self._jPanelConstraints.fill = awt.GridBagConstraints.HORIZONTAL
    self._jPanelConstraints.gridx = 0
    self._jPanelConstraints.gridy = 3
    self._jPanel.add(self._jLabelAPI, self._jPanelConstraints)

    self._jButtonSetAPI = swing.JButton('SQLMap API', actionPerformed=self.setAPI)
    self._jPanelConstraints.fill = awt.GridBagConstraints.HORIZONTAL
    self._jPanelConstraints.gridx = 1
    self._jPanelConstraints.gridy = 3
    self._jPanel.add(self._jButtonSetAPI, self._jPanelConstraints)

    # Create panel to execute API
    self._jButtonStartAPI = swing.JButton('Start API', actionPerformed=self.startAPI)
    self._jPanelConstraints.fill = awt.GridBagConstraints.HORIZONTAL
    self._jPanelConstraints.gridx = 0
    self._jPanelConstraints.gridy = 4
    self._jPanelConstraints.gridwidth = 2
    self._jPanel.add(self._jButtonStartAPI, self._jPanelConstraints)

    # Create SQLMap scanner panel
    # Combobox Values
    levelValues = [1,2,3,4,5]
    riskValues = [0,1,2,3]
    threadValues = [1,2,3,4,5,6,7,8,9,10]
    delayValues = [0,1,2,3,4,5]
    timeoutValues = [1,5,10,15,20,25,30,35,40,45,50,55,60]
    retryValues = [1,2,3,4,5,6,7,8,9,10]
    dbmsValues = ['Any', 'MySQL', 'Oracle', 'PostgreSQL', 'Microsoft SQL Server', 'Microsoft Access', 'SQLite', 'Firebird', 'Sybase', 'SAP MaxDB', 'DB2']
    osValues = ['Any', 'Linux', 'Windows']
    timeSecValues = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
    torTypes = ['HTTP', 'SOCKS4', 'SOCKS5']

    # GUI components
    self._jLabelScanText = swing.JLabel()
    self._jLabelScanIPListen = swing.JLabel()
    self._jLabelScanPortListen = swing.JLabel()
    self._jTextFieldScanIPListen = swing.JTextField()
    self._jTextFieldScanPortListen = swing.JTextField()
    self._jSeparator1 = swing.JSeparator()
    self._jLabelURL = swing.JLabel()
    self._jTextFieldURL = swing.JTextField()
    self._jLabelData = swing.JLabel()
    self._jTextData = swing.JTextArea()
    self._jScrollPaneData = swing.JScrollPane(self._jTextData)
    self._jLabelCookie = swing.JLabel()
    self._jTextFieldCookie = swing.JTextField()
    self._jLabelReferer = swing.JLabel()
    self._jTextFieldReferer = swing.JTextField()
    self._jLabelUA = swing.JLabel()
    self._jTextFieldUA = swing.JTextField()
    self._jSeparator2 = swing.JSeparator()
    self._jLabelParam = swing.JLabel()
    self._jTextFieldParam = swing.JTextField()
    self._jCheckTO = swing.JCheckBox()
    self._jSeparator3 = swing.JSeparator()
    self._jComboLevel = swing.JComboBox(levelValues)
    self._jLabelLevel = swing.JLabel()
    self._jLabelRisk = swing.JLabel()
    self._jComboRisk = swing.JComboBox(riskValues)
    self._jSeparator4 = swing.JSeparator()
    self._jCheckHPP = swing.JCheckBox('Param Pollution')
    self._jCheckCU = swing.JCheckBox('Current User')
    self._jCheckDB = swing.JCheckBox('Current DB')
    self._jCheckHost = swing.JCheckBox('Hostname')
    self._jCheckDBA = swing.JCheckBox('Is DBA?')
    self._jCheckUsers = swing.JCheckBox('List Users')
    self._jCheckPrivs = swing.JCheckBox('List Privs')
    self._jCheckPswds = swing.JCheckBox('List Passwords')
    self._jCheckRoles = swing.JCheckBox('List Roles')
    self._jCheckDBs = swing.JCheckBox('List DBs')
    self._jSeparator5 = swing.JSeparator()
    self._jLabelThreads = swing.JLabel()
    self._jLabelDelay = swing.JLabel()
    self._jLabelTimeout = swing.JLabel()
    self._jLabelRetry = swing.JLabel()
    self._jLabelTimeSec = swing.JLabel()
    self._jComboThreads = swing.JComboBox(threadValues)
    self._jComboDelay = swing.JComboBox(delayValues)
    self._jComboTimeout = swing.JComboBox(timeoutValues)
    self._jComboRetry = swing.JComboBox(retryValues)
    self._jComboTimeSec = swing.JComboBox(timeSecValues)
    self._jSeparator6 = swing.JSeparator()
    self._jLabelDBMS = swing.JLabel()
    self._jComboDBMS = swing.JComboBox(dbmsValues)
    self._jLabelOS = swing.JLabel()
    self._jComboOS = swing.JComboBox(osValues)
    self._jSeparator7 = swing.JSeparator()
    self._jLabelProxy = swing.JLabel()
    self._jTextFieldProxy = swing.JTextField()
    self._jSeparator8 = swing.JSeparator()
    self._jLabelTamper = swing.JLabel()
    self._jTextFieldTamper = swing.JTextField()
    self._jButtonStartScan = swing.JButton('Start Scan', actionPerformed=self.startScan)
    self._jLabelScanAPI = swing.JLabel()
    self._jSeparator9 = swing.JSeparator()
    self._jSeparator10 = swing.JSeparator()
    self._jCheckTor = swing.JCheckBox('Enable Tor')
    self._jLabelTorType = swing.JLabel()
    self._jComboTorType = swing.JComboBox(torTypes)
    self._jLabelTorPort = swing.JLabel()
    self._jTextFieldTorPort = swing.JTextField()

    # Configure GUI
    self._jLabelScanText.setText('API Listening On:')
    self._jLabelScanIPListen.setText('SQLMap API IP:')
    self._jLabelScanPortListen.setText('SQLMap API Port:')
    self._jLabelURL.setText('URL:')
    self._jLabelData.setText('Post Data:')
    self._jTextData.setColumns(20)
    self._jTextData.setRows(5)
    self._jTextData.setLineWrap(True)
    self._jScrollPaneData.setVerticalScrollBarPolicy(swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS)
    self._jLabelCookie.setText('Cookies:')
    self._jLabelReferer.setText('Referer:')
    self._jLabelUA.setText('User-Agent:')
    self._jLabelParam.setText('Test Parameter(s):')
    self._jCheckTO.setText('Text Only')
    self._jLabelLevel.setText('Level:')
    self._jLabelRisk.setText('Risk:')
    self._jComboLevel.setSelectedIndex(2)
    self._jComboRisk.setSelectedIndex(1)
    self._jComboThreads.setSelectedIndex(0)
    self._jComboDelay.setSelectedIndex(0)
    self._jComboTimeout.setSelectedIndex(6)
    self._jComboRetry.setSelectedIndex(2)
    self._jComboTimeSec.setSelectedIndex(4)
    self._jComboDBMS.setSelectedIndex(0)
    self._jComboOS.setSelectedIndex(0)
    self._jComboTorType.setSelectedIndex(2)
    self._jLabelThreads.setText('Threads:')
    self._jLabelDelay.setText('Delay:')
    self._jLabelTimeout.setText('Timeout:')
    self._jLabelRetry.setText('Retries:')
    self._jLabelTimeSec.setText('Time-Sec:')
    self._jLabelDBMS.setText('DBMS Backend:')
    self._jLabelOS.setText('Operating System:')
    self._jLabelProxy.setText('Proxy (HTTP://IP:Port):')
    self._jLabelTamper.setText('Tamper Scripts:')
    self._jLabelTorType.setText('Tor Type:')
    self._jLabelTorPort.setText('Tor Port:')
    self._jTextFieldTorPort.setText('9050')

    # Configure locations
    self._jLabelScanText.setBounds(15, 16, 126, 20)
    self._jLabelScanIPListen.setBounds(15, 58, 115, 20)
    self._jLabelScanPortListen.setBounds(402, 55, 129, 20)
    self._jTextFieldScanIPListen.setBounds(167, 52, 206, 26)
    self._jTextFieldScanPortListen.setBounds(546, 52, 63, 26)
    self._jSeparator1.setBounds(15, 96, 790, 10)
    self._jLabelURL.setBounds(15, 117, 35, 20)
    self._jTextFieldURL.setBounds(166, 114, 535, 26)
    self._jLabelData.setBounds(15, 156, 73, 20)
    self._jTextData.setColumns(20)
    self._jTextData.setRows(5)
    self._jScrollPaneData.setBounds(166, 156, 535, 96)
    self._jLabelCookie.setBounds(15, 271, 61, 20)
    self._jTextFieldCookie.setBounds(166, 271, 535, 26)
    self._jLabelReferer.setBounds(15, 320, 57, 20)
    self._jTextFieldReferer.setBounds(166, 320, 535, 26)
    self._jLabelUA.setBounds(15, 374, 86, 20)
    self._jTextFieldUA.setBounds(166, 371, 535, 26)
    self._jSeparator2.setBounds(15, 459, 790, 10)
    self._jLabelParam.setBounds(15, 483, 132, 20)
    self._jTextFieldParam.setBounds(165, 480, 366, 26)
    self._jCheckTO.setBounds(584, 479, 101, 29)
    self._jSeparator3.setBounds(15, 526, 790, 10)
    self._jComboLevel.setBounds(165, 544, 180, 26)
    self._jLabelLevel.setBounds(15, 547, 42, 20)
    self._jLabelRisk.setBounds(430, 547, 35, 20)
    self._jComboRisk.setBounds(518, 544, 180, 26)
    self._jSeparator4.setBounds(15, 588, 790, 10)
    self._jCheckHPP.setBounds(15, 608, 145, 29)
    self._jCheckCU.setBounds(191, 608, 123, 29)
    self._jCheckDB.setBounds(340, 608, 111, 29)
    self._jCheckHost.setBounds(469, 608, 103, 29)
    self._jCheckDBA.setBounds(599, 608, 105, 29)
    self._jCheckUsers.setBounds(15, 655, 101, 29)
    self._jCheckPswds.setBounds(191, 655, 135, 29)
    self._jCheckPrivs.setBounds(344, 655, 95, 29)
    self._jCheckRoles.setBounds(469, 655, 99, 29)
    self._jCheckDBs.setBounds(599, 655, 89, 29)
    self._jSeparator5.setBounds(15, 696, 790, 10)
    self._jLabelThreads.setBounds(15, 719, 63, 20)
    self._jLabelDelay.setBounds(173, 719, 45, 20)
    self._jLabelTimeout.setBounds(326, 719, 65, 20)
    self._jLabelRetry.setBounds(484, 719, 48, 20)
    self._jLabelTimeSec.setBounds(642, 719, 65, 20)
    self._jComboThreads.setBounds(80, 716, 78, 26)
    self._jComboDelay.setBounds(233, 716, 78, 26)
    self._jComboTimeout.setBounds(391, 716, 78, 26)
    self._jComboRetry.setBounds(549, 716, 78, 26)
    self._jComboTimeSec.setBounds(717, 716, 78, 26)
    self._jSeparator6.setBounds(15, 758, 790, 10)
    self._jLabelDBMS.setBounds(15, 781, 110, 20)
    self._jComboDBMS.setBounds(143, 778, 191, 26)
    self._jLabelOS.setBounds(352, 781, 132, 20)
    self._jComboOS.setBounds(502, 778, 191, 26)
    self._jSeparator7.setBounds(15, 820, 790, 10)
    self._jLabelProxy.setBounds(15, 844, 171, 20)
    self._jTextFieldProxy.setBounds(204, 841, 256, 26)
    self._jSeparator8.setBounds(15, 887, 790, 10)
    self._jCheckTor.setBounds(15, 911, 171, 20)
    self._jLabelTorType.setBounds(206, 908, 65, 26)
    self._jComboTorType.setBounds(291, 908, 100, 26)
    self._jLabelTorPort.setBounds(460, 908, 129, 26)
    self._jTextFieldTorPort.setBounds(545, 908, 65, 26)
    self._jSeparator9.setBounds(15, 954, 790, 10)
    self._jLabelTamper.setBounds(15, 979, 171, 20)
    self._jTextFieldTamper.setBounds(204, 976, 256, 26)
    self._jSeparator10.setBounds(15, 1024, 790, 10)
    self._jButtonStartScan.setBounds(346, 1047, 103, 29)
    self._jLabelScanAPI.setBounds(167, 16, 275, 20)

    # Create main panel
    self._jScanPanel = swing.JPanel()
    self._jScanPanel.setLayout(None)
    self._jScanPanel.setPreferredSize(awt.Dimension(1010,1010))
    self._jScanPanel.add(self._jLabelScanText)
    self._jScanPanel.add(self._jLabelScanIPListen)
    self._jScanPanel.add(self._jLabelScanPortListen)
    self._jScanPanel.add(self._jTextFieldScanIPListen)
    self._jScanPanel.add(self._jTextFieldScanPortListen)
    self._jScanPanel.add(self._jSeparator1)
    self._jScanPanel.add(self._jLabelURL)
    self._jScanPanel.add(self._jTextFieldURL)
    self._jScanPanel.add(self._jLabelData)
    self._jScanPanel.add(self._jScrollPaneData)
    self._jScanPanel.add(self._jLabelCookie)
    self._jScanPanel.add(self._jTextFieldCookie)
    self._jScanPanel.add(self._jLabelReferer)
    self._jScanPanel.add(self._jTextFieldReferer)
    self._jScanPanel.add(self._jLabelUA)
    self._jScanPanel.add(self._jTextFieldUA)
    self._jScanPanel.add(self._jSeparator2)
    self._jScanPanel.add(self._jLabelParam)
    self._jScanPanel.add(self._jTextFieldParam)
    self._jScanPanel.add(self._jCheckTO)
    self._jScanPanel.add(self._jSeparator3)
    self._jScanPanel.add(self._jComboLevel)
    self._jScanPanel.add(self._jLabelLevel)
    self._jScanPanel.add(self._jLabelRisk)
    self._jScanPanel.add(self._jComboRisk)
    self._jScanPanel.add(self._jSeparator4)
    self._jScanPanel.add(self._jCheckHPP)
    self._jScanPanel.add(self._jCheckCU)
    self._jScanPanel.add(self._jCheckDB)
    self._jScanPanel.add(self._jCheckHost)
    self._jScanPanel.add(self._jCheckDBA)
    self._jScanPanel.add(self._jCheckUsers)
    self._jScanPanel.add(self._jCheckPswds)
    self._jScanPanel.add(self._jCheckPrivs)
    self._jScanPanel.add(self._jCheckRoles)
    self._jScanPanel.add(self._jCheckDBs)
    self._jScanPanel.add(self._jSeparator5)
    self._jScanPanel.add(self._jLabelThreads)
    self._jScanPanel.add(self._jLabelDelay)
    self._jScanPanel.add(self._jLabelTimeout)
    self._jScanPanel.add(self._jLabelRetry)
    self._jScanPanel.add(self._jLabelTimeSec)
    self._jScanPanel.add(self._jComboThreads)
    self._jScanPanel.add(self._jComboDelay)
    self._jScanPanel.add(self._jComboTimeout)
    self._jScanPanel.add(self._jComboRetry)
    self._jScanPanel.add(self._jComboTimeSec)
    self._jScanPanel.add(self._jSeparator6)
    self._jScanPanel.add(self._jLabelDBMS)
    self._jScanPanel.add(self._jComboDBMS)
    self._jScanPanel.add(self._jLabelOS)
    self._jScanPanel.add(self._jComboOS)
    self._jScanPanel.add(self._jSeparator7)
    self._jScanPanel.add(self._jLabelProxy)
    self._jScanPanel.add(self._jTextFieldProxy)
    self._jScanPanel.add(self._jSeparator8)
    self._jScanPanel.add(self._jCheckTor)
    self._jScanPanel.add(self._jLabelTorType)
    self._jScanPanel.add(self._jComboTorType)
    self._jScanPanel.add(self._jLabelTorPort)
    self._jScanPanel.add(self._jTextFieldTorPort)
    self._jScanPanel.add(self._jSeparator9)
    self._jScanPanel.add(self._jLabelTamper)
    self._jScanPanel.add(self._jTextFieldTamper)
    self._jScanPanel.add(self._jSeparator10)
    self._jScanPanel.add(self._jButtonStartScan)
    self._jScanPanel.add(self._jLabelScanAPI)
    self._jScrollPaneMain = swing.JScrollPane(self._jScanPanel)
    self._jScrollPaneMain.setViewportView(self._jScanPanel)
    self._jScrollPaneMain.setPreferredSize(awt.Dimension(999,999))

    # Create SQLMap log JPanel
    self._jLogPanel = swing.JPanel()
    self._jLogPanel.setLayout(None)

    # Create label, combobox, and button to get logs and textarea to display them
    self._jLabelLog = swing.JLabel("Logs for Scan ID:")
    self._jComboLogs = swing.JComboBox(self.scantasks)
    self._jButtonGetLogs = swing.JButton('Get', actionPerformed=self.getLogs)
    self._jButtonRemoveLogs = swing.JButton('Remove', actionPerformed=self.removeLogs)
    self._jTextLogs = swing.JTextArea()
    self._jTextLogs.setColumns(50)
    self._jTextLogs.setRows(50)
    self._jTextLogs.setLineWrap(True)
    self._jTextLogs.setEditable(False)
    self._jScrollPaneLogs = swing.JScrollPane(self._jTextLogs)
    self._jScrollPaneLogs.setVerticalScrollBarPolicy(swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS)

    self._jLabelLog.setBounds(15, 16, 126, 20)
    self._jComboLogs.setBounds(167, 16, 535, 20)
    self._jButtonGetLogs.setBounds(718, 16, 50, 20)
    self._jButtonRemoveLogs.setBounds(783, 16, 80, 20)
    self._jScrollPaneLogs.setBounds(15, 58, 846, 400)

    self._jLogPanel.add(self._jLabelLog)
    self._jLogPanel.add(self._jComboLogs)
    self._jLogPanel.add(self._jButtonGetLogs)
    self._jLogPanel.add(self._jButtonRemoveLogs)
    self._jLogPanel.add(self._jScrollPaneLogs)

    # Create SQLMap stop scan JPanel
    self._jStopScanPanel = swing.JPanel()
    self._jStopScanPanel.setLayout(None)

    # Create label, combobox, and button to stop scans and textfield to display success
    self._jLabelStopScan = swing.JLabel("Stop Scan ID:")
    self._jComboStopScan = swing.JComboBox(self.scantasks)
    self._jButtonStopScan = swing.JButton('Stop', actionPerformed=self.stopScan)
    self._jButtonRemoveScan = swing.JButton('Remove', actionPerformed=self.removeScan)
    self._jLabelStopStatus = swing.JLabel()

    self._jLabelStopScan.setBounds(15, 16, 126, 20)
    self._jComboStopScan.setBounds(167, 16, 535, 20)
    self._jButtonStopScan.setBounds(718, 16, 55, 20)
    self._jButtonRemoveScan.setBounds(783, 16, 80, 20)
    self._jLabelStopStatus.setBounds(167, 58, 846, 20)

    self._jStopScanPanel.add(self._jLabelStopScan)
    self._jStopScanPanel.add(self._jComboStopScan)
    self._jStopScanPanel.add(self._jButtonStopScan)
    self._jStopScanPanel.add(self._jButtonRemoveScan)
    self._jStopScanPanel.add(self._jLabelStopStatus)

    # Setup Tabs
    self._jConfigTab = swing.JTabbedPane()
    self._jConfigTab.addTab("SQLMap API", self._jPanel)
    self._jConfigTab.addTab("SQLMap Scanner", self._jScrollPaneMain)
    self._jConfigTab.addTab("SQLMap Logs", self._jLogPanel)
    self._jConfigTab.addTab("SQLMap Scan Stop", self._jStopScanPanel)

    callbacks.customizeUiComponent(self._jConfigTab)
    callbacks.addSuiteTab(self)
    return
Пример #29
0
    def registerExtenderCallbacks(self, callbacks):
        print "Name: \t\t" + BurpExtender.EXT_NAME
        print "Description: \t" + BurpExtender.EXT_DESC
        print "Authors: \t" + BurpExtender.EXT_AUTHOR
        # Required for easier debugging:
        # https://github.com/securityMB/burp-exceptions
        sys.stdout = callbacks.getStdout()
        self._callbacks = callbacks
        self._helpers = callbacks.getHelpers()
        callbacks.setExtensionName(BurpExtender.EXT_NAME)

        #Create Burp Collaborator Instance
        self.burpCollab = self._callbacks.createBurpCollaboratorClientContext()
        self.collaboratorDomain = self.burpCollab.generatePayload(True)

        #Create panels used for layout; we must stack and layer to get the desired GUI
        self.tab = swing.Box(swing.BoxLayout.Y_AXIS)
        self.tabbedPane = swing.JTabbedPane()
        self.tab.add(self.tabbedPane)

        # First tab
        self.collabfiltratorTab = swing.Box(swing.BoxLayout.Y_AXIS)
        self.tabbedPane.addTab("Collabfiltrator", self.collabfiltratorTab)

        # Second tab
        #self.configurationTab = swing.Box(swing.BoxLayout.Y_AXIS)
        #self.tabbedPane.addTab("Configuration", self.configurationTab)

        # Create objects for the first tab's GUI
        # These rows will add top to bottom on the Y Axis
        self.t1r1 = swing.JPanel(FlowLayout())
        self.t1r2 = swing.JPanel(FlowLayout())
        self.t1r3 = swing.JPanel(FlowLayout())
        self.t1r4 = swing.JPanel(FlowLayout())
        self.t1r5 = swing.JPanel(FlowLayout())
        self.t1r6 = swing.JPanel(FlowLayout())
        self.t1r7 = swing.JPanel(FlowLayout())

        # Now add content to the first tab's GUI objects
        self.osComboBox = swing.JComboBox(
            ["Windows", "Linux_ping", "Linux_nslookup", "Linux_dig"])
        #self.commandTxt = swing.JTextField("ls -lah", 35)
        self.commandTxt = swing.JTextField("dir C:\inetpub\wwwroot", 25)
        self.payloadTxt = swing.JTextArea(10, 50)
        self.payloadTxt.setBackground(Color.lightGray)
        self.payloadTxt.setEditable(
            False)  # So you can't messup the generated payload
        self.payloadTxt.setLineWrap(True)  #Wordwrap the output of payload box
        self.outputTxt = swing.JTextArea(10, 50)
        self.outputScroll = swing.JScrollPane(
            self.outputTxt)  # Make the output scrollable

        self.progressBar = swing.JProgressBar(5, 15)
        self.progressBar.setVisible(False)  # Progressbar is hiding

        self.outputTxt.setBackground(Color.lightGray)
        self.outputTxt.setEditable(False)
        self.outputTxt.setLineWrap(True)
        self.burpCollaboratorDomainTxt = swing.JTextPane(
        )  # burp collaboratorTextPane
        self.burpCollaboratorDomainTxt.setText(
            " ")  #burp collaborator domain goes here
        self.burpCollaboratorDomainTxt.setEditable(False)
        self.burpCollaboratorDomainTxt.setBackground(None)
        self.burpCollaboratorDomainTxt.setBorder(None)
        self.t1r1.add(
            swing.JLabel(
                "<html><center><h2>Collabfiltrator</h2>Exfiltrate blind remote code execution output over DNS via Burp Collaborator.</center></html>"
            ))
        self.t1r2.add(swing.JLabel("Platform"))
        self.t1r2.add(self.osComboBox)
        self.t1r2.add(swing.JLabel("Command"))
        self.t1r2.add(self.commandTxt)
        self.t1r2.add(
            swing.JButton("Execute", actionPerformed=self.executePayload))
        self.t1r3.add(swing.JLabel("Payload"))
        self.t1r3.add(self.payloadTxt)
        self.t1r6.add(
            self.burpCollaboratorDomainTxt)  #burp Collab Domain will go here
        self.t1r4.add(
            swing.JButton("Copy Payload to Clipboard",
                          actionPerformed=self.copyToClipboard))
        self.t1r4.add(
            swing.JButton("Start poll results",
                          actionPerformed=self.startPollResults))
        self.t1r4.add(
            swing.JButton("Stop listener",
                          actionPerformed=self.stopPollResults))
        self.t1r4.add(swing.JButton("Show logs",
                                    actionPerformed=self.showLogs))
        self.t1r5.add(swing.JLabel("Output"))
        self.t1r5.add(self.outputScroll)  #add output scroll bar to page
        self.t1r7.add(self.progressBar)

        # Add the GUI objects into the first tab
        self.collabfiltratorTab.add(self.t1r1)
        self.collabfiltratorTab.add(self.t1r2)
        self.collabfiltratorTab.add(self.t1r3)
        self.collabfiltratorTab.add(self.t1r6)
        self.collabfiltratorTab.add(self.t1r4)
        self.collabfiltratorTab.add(self.t1r7)
        self.collabfiltratorTab.add(self.t1r5)

        # Create objects for the second tab's GUI
        self.dummylabel = swing.JLabel(
            "Burp Collaborator Config options will go here.")

        # Add the GUI objects into the second tab
        ########self.configurationTab.add(self.dummylabel)

        # Now that the GUI objects are added, we can resize them to fit snug in the UI
        self.t1r1.setMaximumSize(Dimension(800, 100))
        self.t1r2.setMaximumSize(Dimension(800, 50))
        self.t1r3.setMaximumSize(Dimension(800, 200))
        self.t1r4.setMaximumSize(Dimension(800, 200))
        self.t1r6.setMaximumSize(Dimension(800, 50))
        self.t1r7.setMaximumSize(Dimension(800, 50))

        #Register the panel in the Burp GUI
        callbacks.addSuiteTab(self)
        return
Пример #30
0
    def registerExtenderCallbacks(self, callbacks):
        self._helpers = callbacks.getHelpers()

        self._jDecoderPanel = swing.JPanel()
        self._jDecoderPanel.setLayout(None)

        # Combobox Values
        self._decodeType = ['Convert to chniese',
                            'Str to Unicode',
                            'Str To UTF-8',
                            'Base64 Eecode',
                            'Base64 Decode']

        self._decodeTypeFunc = [self.convertToChinese,
                                self.strToUnicode,
                                self.strToUtf8,
                                self.base64Encode,
                                self.base64Decode]

        # GUI components
        self._jLabelInput = swing.JLabel()
        self._jLabelOutput = swing.JLabel()
        self._jLabelExample = swing.JLabel()
        self._jLabelOputFormat = swing.JLabel()
        self._jCheckBoxOutputFormat = swing.JCheckBox()
        self._jTextAreaInputData = swing.JTextArea()
        self._jTextAreaOutputData = swing.JTextArea()
        self._jScrollPaneIntput = swing.JScrollPane(self._jTextAreaInputData)
        self._jScrollPaneOutput = swing.JScrollPane(self._jTextAreaOutputData)

        self._jButtonDecoder = swing.JButton('Execute', actionPerformed=self.decode)
        self._jComboDecodeType = swing.JComboBox(self._decodeType, actionListener=self.change_decode)

        # Configure GUI
        self._jLabelInput.setText('Input:')
        self._jLabelOutput.setText('Output:')
        self._jLabelExample.setText('Example: ')
        self._jLabelOputFormat.setText(r'Replace % with \ ')
        self._jLabelExample.setFont(Font("Consolas", Font.PLAIN, 14))

        self._jDecoderPanel.add(self._jLabelInput)
        self._jDecoderPanel.add(self._jLabelOutput)

        self._jScrollPaneIntput.setVerticalScrollBarPolicy(swing.JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED)
        self._jScrollPaneOutput.setVerticalScrollBarPolicy(swing.JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED)
        self._jLabelExample.setText(self._decodeTypeFunc[0]())


        # Configure locations
        self._jLabelInput.setBounds(20, 15, self.LABEL_WIDTH, self.LABEL_HEIGHT)
        self._jLabelOutput.setBounds(20, 225, self.LABEL_WIDTH, self.LABEL_HEIGHT)
        self._jLabelExample.setBounds(20, 190, self.TEXTAREA_WIDTH, 30)
        self._jLabelOputFormat.setBounds(self.TEXTAREA_WIDTH + 80, 117, 150, 30)
        self._jCheckBoxOutputFormat.setBounds(self.TEXTAREA_WIDTH + 50, 120, 20, 20)
        self._jScrollPaneIntput.setBounds(20 ,40, self.TEXTAREA_WIDTH, self.TEXTAREA_HEIGHT)
        self._jScrollPaneOutput.setBounds(20, 250, self.TEXTAREA_WIDTH, self.TEXTAREA_HEIGHT)
        self._jButtonDecoder.setBounds(self.TEXTAREA_WIDTH + 50, 40, 150, 30)
        self._jComboDecodeType.setBounds(self.TEXTAREA_WIDTH + 50, 80, 150,30)
 
        self._jDecoderPanel.add(self._jLabelInput)
        self._jDecoderPanel.add(self._jLabelOutput)
        self._jDecoderPanel.add(self._jLabelExample)
        self._jDecoderPanel.add(self._jLabelOputFormat)
        self._jDecoderPanel.add(self._jCheckBoxOutputFormat)
        self._jDecoderPanel.add(self._jComboDecodeType)
        self._jDecoderPanel.add(self._jScrollPaneIntput)
        self._jDecoderPanel.add(self._jScrollPaneOutput)
        self._jDecoderPanel.add(self._jButtonDecoder)

        # Setup Tabs
        self._jConfigTab = swing.JTabbedPane()
        self._jConfigTab.addTab("Decoder", self._jDecoderPanel)
        callbacks.customizeUiComponent(self._jConfigTab)
        callbacks.addSuiteTab(self)
        callbacks.registerContextMenuFactory(self)

        return