Пример #1
0
    def addOptions(self):
        self.optpanel = swing.JPanel(layout=awt.BorderLayout())
        self.add(self.optpanel, awt.BorderLayout.EAST)

        self.commentcheck = swing.JCheckBox(
            COMMENTS, horizontalTextPosition=swing.SwingConstants.LEFT)
        self.commentcheck.setSelected(SHOWCOMMENTS)
        self.optpanel.add(self.commentcheck, awt.BorderLayout.EAST)

        #        self.grbcheck = swing.JCheckBox('Gurobi:', horizontalTextPosition = swing.SwingConstants.LEFT)#w#
        #        self.grbcheck.setSelected(False)#w#

        self.LPbox = swing.Box(swing.BoxLayout.LINE_AXIS)
        self.LPbox.add(
            swing.Box.createRigidArea(awt.Dimension(2 * BORDERWIDTH, 0)))
        self.LPbox.add(swing.JLabel(SOLVER))

        self.solverbox = swing.JComboBox(Data.Problem.SOLVERS)
        self.solverbox.addActionListener(self.SolverSwitcher(self))

        self.LPbox.add(self.solverbox)
        self.LPbox.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH,
                                                               0)))
        self.trimcheck = swing.JCheckBox(
            REDUCE, horizontalTextPosition=swing.SwingConstants.LEFT)
        self.LPbox.add(self.trimcheck)
        self.LPbox.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH,
                                                               0)))

        self.optpanel.add(self.LPbox, awt.BorderLayout.WEST)  #CENTER->WEST
Пример #2
0
 def getTableCellRendererComponent( self, table, value, isSelected, hasFocus, row, column):
     
     jcb = swing.JComboBox( ( value.split( '\n' )[ 0 ], ) )
     if isSelected:
         jcb.setForeground( table.getSelectionForeground() )
         jcb.setBackground( table.getSelectionBackground() )
     else:
         jcb.setForeground( table.getForeground() )
         jcb.setBackground( table.getBackground() )
         
     return jcb
Пример #3
0
    def __init__(self):
        WriterPanel.__init__(self)
        self.dirlabel = swing.JLabel(DIRECTION)
        self.add(self.dirlabel)
        self.dirbox = swing.JComboBox(DIRORDER)
        self.add(self.dirbox)

        self.add(swing.Box.createRigidArea(awt.Dimension(BORDERWIDTH, 0)))
        self.objlabel = swing.JLabel(OBJECTIVE)
        self.add(self.objlabel)
        self.objfield = swing.JTextField()
        self.add(self.objfield)
Пример #4
0
    def __init__(self, model, client):
        swing.JTable.__init__(self, model)
        self.getColumnModel().getColumn(1).setCellEditor(
            swing.DefaultCellEditor(swing.JComboBox(font=self.font)))
        self.defRenderer = swing.table.DefaultTableCellRenderer()
        self.getColumnModel().getColumn(1).setCellRenderer(self)
        self.choosing = None

        self.normalBackground = awt.Color(255, 255, 255)
        self.normalForeground = awt.Color(0, 0, 0)
        self.editableBackground = awt.Color(0, 255, 0)
        self.editableForeground = awt.Color(0, 0, 0)
        self.choosingForeground = awt.Color(0, 255, 0)
        self.choosingBackground = awt.Color(255, 0, 0)

        self.client = client
Пример #5
0
     def getTableCellEditorComponent( self, table, value, isSelected, row, column):
         
 
             values = value.split( '\n' )
             self._value = value
             jcb = swing.JComboBox( ( values[ 0 ], ) )
             jcb.addPopupMenuListener( self._deselector( self ) )
             jcb.setEditable( False )
             jcb.setRenderer( self._lcr( value ) )
             if len( values ) > 5:
                 jcb.setMaximumRowCount( 0 )
             else:
                 jcb.setMaximumRowCount( 1 )
             if isSelected:
                 jcb.setForeground( table.getSelectionForeground() )
                 jcb.setBackground( table.getSelectionBackground() )
             else:
                 jcb.setForeground( table.getForeground() )
                 jcb.setBackground( table.getBackground() )
             return jcb
Пример #6
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()
Пример #7
0
 def __init__( self ):
     
     swing.JPanel.__init__( self )
     slayout = swing.SpringLayout()
     self.setLayout( slayout)
     schemes = [ 'svn://', 'svn+ssh://', 'http://', 'https://' ] 
     self.scheme_widget = scheme_widget = swing.JComboBox( schemes)
     scheme_widget.setEditable( 0 )
     setBorderToTitle( scheme_widget, "scheme:")
     self.add( scheme_widget)
     slayout.putConstraint( slayout.NORTH, scheme_widget, 5, slayout.NORTH, self)
     slayout.putConstraint( slayout.WEST, scheme_widget, 5, slayout.WEST, self )
      
     self.host = host = swing.JTextField( 15 )
     setBorderToTitle( host, "host:")
     self.add( host )
     slayout.putConstraint( slayout.NORTH, host, 5, slayout.NORTH, self)
     slayout.putConstraint( slayout.WEST, host, 5, slayout.EAST, scheme_widget)
     slayout.putConstraint( slayout.EAST, self, 5, slayout.EAST, host)
    
     pmodel = swing.SpinnerNumberModel( 3690, 0, 5000, 1)
     self.port = port = swing.JSpinner( pmodel )
     dformat = java.text.DecimalFormat()
     dformat.setGroupingSize( 8 )
     editor = swing.JSpinner.NumberEditor( port, dformat.toPattern() )
     port.setEditor( editor)
     port.revalidate() 
     # port.setEditor( port.getEditor()) 
     setBorderToTitle( port, "port:")
     self.add( port )
     slayout.putConstraint( slayout.NORTH, port, 5, slayout.SOUTH, scheme_widget)
     slayout.putConstraint( slayout.WEST, port, 5, slayout.WEST, self)
    
     self.path = path = swing.JTextField( 15 )
     setBorderToTitle( path, "path:")
     self.add( path )
     slayout.putConstraint( slayout.NORTH, path, 5, slayout.SOUTH, scheme_widget )
     slayout.putConstraint( slayout.WEST, path, 0, slayout.WEST, host )
     slayout.putConstraint( slayout.SOUTH, self, 5, slayout.SOUTH, path )
Пример #8
0
    def __init__(self):
        swing.JFrame.__init__(self)
        self.title='Network Application Organizer'
        self.windowClosing=lambda x: sys.exit()

        self.namePane=swing.JPanel(layout=java.awt.BorderLayout())
        self.namePane.add(swing.JLabel('Name:'),'West')
        self.nameText=swing.JTextField(actionPerformed=self.onTrySetName)
        self.namePane.add(self.nameText)
        self.contentPane.add(self.namePane,'North')

        self.tab=swing.JTabbedPane()
        
        self.runningAppData=RunningAppTableModel()
        self.table=swing.JTable(self.runningAppData)
        self.table.selectionMode=swing.ListSelectionModel.SINGLE_SELECTION
        self.table.preferredScrollableViewportSize=300,50
        self.table.mouseClicked=self.onTableClicked

        self.appTypeList=swing.JList(mouseClicked=self.onTypeListClicked,valueChanged=self.onTypeListSelectionChanged)
        createPane=swing.JPanel(layout=java.awt.BorderLayout())
        createPane.add(swing.JScrollPane(self.appTypeList),'West')
        self.startAppButton=swing.JButton('Start',actionPerformed=self.onStartApp)
        createPane.add(self.startAppButton,'East')

        self.optionPanelLayout=java.awt.CardLayout()
        self.optionPanel=swing.JPanel(layout=self.optionPanelLayout)
        self.optionEditor=swing.JComboBox(font=swing.JTable().font)
        createPane.add(self.optionPanel)

        self.tab.addTab('Start New App',createPane)
        self.tab.addTab('Running Apps',swing.JScrollPane(self.table))

        self.contentPane.add(self.tab)
        
        self.pack()
        self.show()
Пример #9
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
Пример #10
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
Пример #11
0
#@+leo-ver=4-thin
#@+node:zorcanda!.20051117160341:@thin ComboBoxTest.py
import javax.swing as swing
import java.util as util
import sys
print sys.argv
print __name__
print globals()
print locals()

jf = swing.JFrame()
d = ['mooo', 'maaa', 'meee', 'yoooo']
v = util.Vector(d)
jcb = swing.JComboBox(v)
jcb.setEditable(1)
jf.add(jcb)


class aa(swing.AbstractAction):
    def __init__(self):
        swing.AbstractAction.__init__(self)
        self.count = 1

    def actionPerformed(self, event):
        print self.count
        print event.getID()
        print event.getSource()
        self.count += 1
        print "-" * 5
        print event
Пример #12
0
    def registerExtenderCallbacks(self, callbacks):
        # Print information about the plugin, set extension name, setup basic stuff
        self.printHeader()
        callbacks.setExtensionName("BurpHelper")
        self._callbacks = callbacks
        self._helpers = callbacks.getHelpers()
        callbacks.registerContextMenuFactory(self)
        # Create main panel with Components
        self._jTitleFont = Font("", Font.BOLD, 15)

        ##Current IP
        self._jLabelCurrentIPMainText = swing.JLabel()
        self._jLabelCurrentIPDesText = swing.JLabel()
        self._jLabelCurrentWanIpDes = swing.JLabel()
        self._jLabelCurrentLanIpDes = swing.JLabel()
        self._jLabelCurrentWanIp = swing.JLabel()
        self._jLabelCurrentLanIp = swing.JLabel()
        self._jCheckIPButton = swing.JButton("Check IP",
                                             actionPerformed=self.CheckIP)

        ##Proxy Setting

        self._jPAddButton = swing.JButton("Add", actionPerformed=self.PitemAdd)
        self._jPEditButton = swing.JButton("Edit",
                                           actionPerformed=self.PitemEdit)
        self._jPRemoveButton = swing.JButton("Remove",
                                             actionPerformed=self.PitemRemove)
        self._jLabelMainText = swing.JLabel()
        self._jLabelScanIPListen = swing.JLabel()

        self._jScanPanel = swing.JPanel()
        self._jScanPanel.setLayout(None)
        self._jTabledata = MappingTableModel(callbacks, self._jScanPanel)
        self._jTable = swing.JTable(self._jTabledata)
        self._jTablecont = swing.JScrollPane(self._jTable)
        self._jSeparator_first = swing.JSeparator(swing.JSeparator.HORIZONTAL)
        self._jSeparator_second = swing.JSeparator(swing.JSeparator.HORIZONTAL)

        ##Dashboard
        self._jLabelDashboardText = swing.JLabel()
        self._jLabelDashboardDesText = swing.JLabel()
        self._jDTabledata = DashboardTableModel(callbacks, self._jScanPanel)
        self._jDTable = swing.JTable(self._jDTabledata)
        self._jDTablecont = swing.JScrollPane(self._jDTable)

        # Configure GUI
        self._jLabelCurrentIPMainText.setText('Check Current IP ')
        self._jLabelCurrentIPMainText.setForeground(Color(228, 127, 0))
        self._jLabelCurrentIPMainText.setFont(self._jTitleFont)
        self._jLabelCurrentIPDesText.setText('You can check your current IP')
        self._jLabelCurrentWanIpDes.setText("Wan IP : ")
        self._jLabelCurrentLanIpDes.setText("Lan IP : ")

        self._jLabelMainText.setText('Proxy Server Setting')
        self._jLabelMainText.setForeground(Color(228, 127, 0))
        self._jLabelMainText.setFont(self._jTitleFont)
        self._jLabelScanIPListen.setText(
            'You can set the proxy server, When the plugin is loading, Proxy Setting is initialized'
        )
        self._jTable.getColumn("Name").setPreferredWidth(200)
        self._jTable.getColumn("IP").setPreferredWidth(150)
        self._jTable.getColumn("Port").setPreferredWidth(100)
        self._jTable.getColumn("Enabled").setPreferredWidth(50)

        self._jDTable.getColumn("URL").setPreferredWidth(180)
        self._jDTable.getColumn("Privilege").setPreferredWidth(130)
        self._jDTable.getColumn("ID").setPreferredWidth(100)
        self._jDTable.getColumn("Password").setPreferredWidth(100)
        self._jDTable.getColumn("Comment").setPreferredWidth(200)

        self._jScanPanel.setPreferredSize(awt.Dimension(1010, 1010))

        self._jLabelDashboardText.setText('Target Site List')
        self._jLabelDashboardText.setForeground(Color(228, 127, 0))
        self._jLabelDashboardText.setFont(self._jTitleFont)
        self._jLabelDashboardDesText.setText(
            'You can save the account list per site.')
        self._jDAddButton = swing.JButton("Add", actionPerformed=self.DitemAdd)
        self._jDEditButton = swing.JButton("Edit",
                                           actionPerformed=self.DitemEdit)
        self._jDRemoveButton = swing.JButton("Remove",
                                             actionPerformed=self.DitemRemove)
        self._jDIDCopyButton = swing.JButton("ID Copy",
                                             actionPerformed=self.DIDCopy)
        self._jDPwCopyButton = swing.JButton("PW Copy",
                                             actionPerformed=self.DPwCopy)
        self._jDitemsDelete = swing.JButton("Clear",
                                            actionPerformed=self.DitemsDelete)
        self._jDURLConButton = swing.JButton("Open URL",
                                             actionPerformed=self.DOpenURL)

        # Configure locations
        self._jLabelCurrentIPMainText.setBounds(15, 10, 300, 20)
        self._jLabelCurrentIPDesText.setBounds(15, 32, 300, 20)
        self._jLabelCurrentWanIpDes.setBounds(15, 60, 60, 15)
        self._jLabelCurrentLanIpDes.setBounds(15, 80, 60, 15)
        self._jLabelCurrentWanIp.setBounds(80, 60, 100, 15)
        self._jLabelCurrentLanIp.setBounds(80, 80, 100, 15)
        self._jCheckIPButton.setBounds(190, 57, 90, 40)

        self._jSeparator_first.setBounds(15, 110, 900, 15)

        self._jLabelMainText.setBounds(15, 120, 300, 20)
        self._jLabelScanIPListen.setBounds(15, 142, 500, 20)
        self._jPAddButton.setBounds(15, 170, 100, 30)
        self._jPEditButton.setBounds(15, 205, 100, 30)
        self._jPRemoveButton.setBounds(15, 240, 100, 30)
        self._jTablecont.setBounds(120, 170, 600, 150)
        self._jSeparator_second.setBounds(15, 335, 900, 15)

        self._jLabelDashboardText.setBounds(15, 350, 300, 20)
        self._jLabelDashboardDesText.setBounds(15, 372, 300, 20)
        self._jDAddButton.setBounds(15, 400, 100, 30)
        self._jDEditButton.setBounds(15, 435, 100, 30)
        self._jDRemoveButton.setBounds(15, 470, 100, 30)
        self._jDURLConButton.setBounds(15, 505, 100, 30)
        self._jDIDCopyButton.setBounds(15, 540, 100, 30)
        self._jDPwCopyButton.setBounds(15, 575, 100, 30)
        self._jDTablecont.setBounds(120, 400, 750, 205)
        self._jDitemsDelete.setBounds(810, 375, 60, 25)

        # Component ADD
        self._jScanPanel.add(self._jLabelCurrentIPMainText)
        self._jScanPanel.add(self._jLabelCurrentIPDesText)
        self._jScanPanel.add(self._jLabelCurrentWanIp)
        self._jScanPanel.add(self._jLabelCurrentLanIp)
        self._jScanPanel.add(self._jLabelCurrentWanIpDes)
        self._jScanPanel.add(self._jLabelCurrentLanIpDes)
        self._jScanPanel.add(self._jCheckIPButton)
        self._jScanPanel.add(self._jLabelMainText)
        self._jScanPanel.add(self._jLabelScanIPListen)
        self._jScanPanel.add(self._jPAddButton)
        self._jScanPanel.add(self._jPEditButton)
        self._jScanPanel.add(self._jPRemoveButton)
        self._jScanPanel.add(self._jSeparator_first)
        self._jScanPanel.add(self._jTablecont)
        self._jScanPanel.add(self._jSeparator_second)
        self._jScanPanel.add(self._jLabelDashboardText)
        self._jScanPanel.add(self._jLabelDashboardDesText)
        self._jScanPanel.add(self._jDAddButton)
        self._jScanPanel.add(self._jDEditButton)
        self._jScanPanel.add(self._jDRemoveButton)
        self._jScanPanel.add(self._jDIDCopyButton)
        self._jScanPanel.add(self._jDPwCopyButton)
        self._jScanPanel.add(self._jDTablecont)
        self._jScanPanel.add(self._jDitemsDelete)
        self._jScanPanel.add(self._jDURLConButton)

        # ADD/EDIT Dialog Create Component
        ## PROXY

        self.panel = swing.JPanel()
        self.panel.setLayout(None)
        self.panel.setPreferredSize(awt.Dimension(200, 140))
        self.DescriptionLabel = swing.JLabel()
        self.NameLabel = swing.JLabel()
        self.IPLabel = swing.JLabel()
        self.PortLabel = swing.JLabel()
        self.Nametext = swing.JTextField(50)
        self.IPtext = swing.JTextField(50)
        self.Porttext = swing.JTextField(50)

        ## ACOUNT
        self.Dpanel = swing.JPanel()
        self.Dpanel.setLayout(None)
        self.Dpanel.setPreferredSize(awt.Dimension(260, 210))
        self.DDescriptionLabel = swing.JLabel()
        self.DURLLabel = swing.JLabel()
        self.DURLText = swing.JTextField(50)
        self.DPrivLabel = swing.JLabel()
        self.DPrivCombo = swing.JComboBox()
        self.DIDLabel = swing.JLabel()
        self.DIDText = swing.JTextField(50)
        self.DPassLabel = swing.JLabel()
        self.DPassText = swing.JTextField(50)
        self.DCommentLabel = swing.JLabel()
        self.DCommentText = swing.JTextField(50)
        self.DSubCommentLabel = swing.JLabel()

        # ADD/EDIT Dialog Configure locations
        ## PROXY

        self.DescriptionLabel.setBounds(0, 0, 190, 15)
        self.NameLabel.setBounds(5, 35, 50, 30)
        self.IPLabel.setBounds(5, 70, 50, 30)
        self.PortLabel.setBounds(5, 105, 50, 30)
        self.Nametext.setBounds(60, 35, 150, 30)
        self.IPtext.setBounds(60, 70, 150, 30)
        self.Porttext.setBounds(60, 105, 150, 30)

        ## ACCOUNT
        self.DDescriptionLabel.setBounds(0, 0, 200, 10)

        self.DURLLabel.setBounds(5, 35, 70, 30)
        self.DURLText.setBounds(80, 35, 180, 30)
        self.DPrivLabel.setBounds(5, 70, 70, 30)
        self.DPrivCombo.setBounds(80, 70, 180, 30)
        self.DIDLabel.setBounds(5, 105, 70, 30)
        self.DIDText.setBounds(80, 105, 180, 30)
        self.DPassLabel.setBounds(5, 140, 70, 30)
        self.DPassText.setBounds(80, 140, 180, 30)
        self.DCommentLabel.setBounds(5, 175, 70, 15)
        self.DCommentText.setBounds(80, 175, 180, 30)
        self.DSubCommentLabel.setBounds(0, 190, 80, 15)

        # ADD/EDIT Dialog Configure GUI
        ## PROXY

        self.DescriptionLabel.setText("Input your proxy server details.")
        self.NameLabel.setText("NAME : ")
        self.IPLabel.setText("IP : ")
        self.PortLabel.setText("PORT : ")

        ## ACCOUNT
        self.DDescriptionLabel.setText("Input your account details")
        self.DURLLabel.setText("URL : ")
        self.DPrivLabel.setText("Privilege : ")
        self.DIDLabel.setText("ID : ")
        self.DPassLabel.setText("Password : "******"Comment : ")
        self.DSubCommentLabel.setText("(Unique Text)")
        self.DPrivCombo.addItem("System Administrator")
        self.DPrivCombo.addItem("Staff Administrator")
        self.DPrivCombo.addItem("Internal Staff")
        self.DPrivCombo.addItem("Customer")
        self.DPrivCombo.addItem("The Lowest Privilege")
        self.DPrivCombo.addItem("ETC")
        self.DPrivCombo.setEditable(False)

        # ADD/EDIT Dialog Component ADD
        ## PROXY
        self.panel.add(self.DescriptionLabel)
        self.panel.add(self.NameLabel)
        self.panel.add(self.IPLabel)
        self.panel.add(self.PortLabel)
        self.panel.add(self.Nametext)
        self.panel.add(self.IPtext)
        self.panel.add(self.Porttext)

        ## ACCOUNT
        self.Dpanel.add(self.DDescriptionLabel)
        self.Dpanel.add(self.DURLLabel)
        self.Dpanel.add(self.DURLText)
        self.Dpanel.add(self.DIDLabel)
        self.Dpanel.add(self.DIDText)
        self.Dpanel.add(self.DPassLabel)
        self.Dpanel.add(self.DPassText)
        self.Dpanel.add(self.DPrivLabel)
        self.Dpanel.add(self.DPrivCombo)
        self.Dpanel.add(self.DCommentLabel)
        self.Dpanel.add(self.DCommentText)
        self.Dpanel.add(self.DSubCommentLabel)

        # Setup Tabs
        self._jConfigTab = swing.JTabbedPane()
        self._jConfigTab.addTab("Smart Settings", self._jScanPanel)
        callbacks.addSuiteTab(self)
        return
Пример #13
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
Пример #14
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
Пример #15
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
Пример #16
0
    def registerExtenderCallbacks(self, callbacks):
        print("Name: \t\t" + BurpExtender.EXT_NAME)
        print("Description: \t" + BurpExtender.EXT_DESC)
        print("Authors: \t" + BurpExtender.EXT_AUTHOR)
        print("Version: \t" + BurpExtender.EXT_VERSION + "\n")
        # 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)

        self.killDanglingThreadsOnUnload = callbacks.registerExtensionStateListener(
            self.killDanglingThreads)

        #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())  # title and description frame
        self.t1r2 = swing.JPanel(FlowLayout())  #platform and command box frame
        self.t1r3 = swing.JPanel(FlowLayout())  #payload box frame
        self.t1r5 = swing.JPanel(
            FlowLayout())  #copy payload to clipboard frame
        self.t1r7 = swing.JPanel(FlowLayout())  #output box frame
        self.t1r4 = swing.JPanel(FlowLayout())  # collaborator domainname frame
        self.t1r6 = swing.JPanel(
            FlowLayout()
        )  # hidden stop listener frame that only appears upon payload generation
        self.t1r8 = swing.JPanel(FlowLayout())  #clearOutput box frame

        # Now add content to the first tab's GUI objects
        self.osComboBox = swing.JComboBox(
            ["Windows PowerShell", "Linux (sh + ping)"])
        self.commandTxt = swing.JTextField("hostname", 35)
        #self.commandTxt = swing.JTextField("dir c:\inetpub\wwwroot", 35)
        self.payloadTxt = swing.JTextArea(10, 55)
        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, 55)
        self.outputScroll = swing.JScrollPane(
            self.outputTxt)  # Make the output scrollable
        self.payloadScroll = swing.JScrollPane(
            self.payloadTxt)  # Make the payloadText scrollable

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

        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)
        titleLabel = swing.JLabel(
            "<html><center><h2>Collabfiltrator</h2>Exfiltrate blind remote code execution output over DNS via Burp Collaborator.</center></html>"
        )
        titleLabel.putClientProperty("html.disable", None)
        self.t1r1.add(titleLabel)
        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.payloadScroll)
        self.t1r4.add(
            self.burpCollaboratorDomainTxt)  #burp Collab Domain will go here
        self.t1r5.add(
            swing.JButton("Copy Payload to Clipboard",
                          actionPerformed=self.copyToClipboard))
        self.t1r6.add(self.progressBar)
        self.stopListenerButton = swing.JButton(
            "Stop Listener", actionPerformed=self.stopListener)
        self.stopListenerButton.setVisible(False)  # hide stopListenerButton
        self.t1r6.add(self.stopListenerButton)
        self.t1r7.add(swing.JLabel("Output"))
        self.t1r7.add(self.outputScroll)  #add output scroll bar to page
        self.t1r8.add(
            swing.JButton("Clear Output", actionPerformed=self.clearOutput))

        # 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.t1r4)
        self.collabfiltratorTab.add(self.t1r5)
        self.collabfiltratorTab.add(self.t1r6)
        self.collabfiltratorTab.add(self.t1r7)
        self.collabfiltratorTab.add(self.t1r8)

        # 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)

        #Register the panel in the Burp GUI
        callbacks.addSuiteTab(self)
        return
Пример #17
0
    def thingChangedAttr(self, key=None, val=None):
        if self.thing != None:
            for k in self.thing.getKeys():
                if k == 'isPlayer': continue
                if k == 'name':
                    if key == None or key == k:
                        self.border = swing.BorderFactory.createTitledBorder(
                            self.thing.get(k))
                    continue
                if k in self.attrs.keys():
                    if k != key:
                        continue
                    else:
                        p = self.attrs[k]
                        p.removeAll()
                else:
                    p = swing.JPanel(layout=awt.GridLayout(1, 2))
                    self.attrBox.add(p)
                    self.attrs[k] = p

                v = self.thing.get(k)

                if k in self.thing.editable.keys():
                    if isinstance(v, Thing):
                        c = swing.JButton(v.get('name'))
                        c.actionPerformed = lambda event, key=k, self=self: self.startChoosingTarget(
                            key)
                        self.attrButtons[k] = c
                        l = swing.JLabel(k)
                        p.add(l)
                        p.add(c)
                    elif v == None and len(self.thing.editable[k]) == 0:
                        c = swing.JButton('Select %s' % k)
                        if v != None:
                            c.text = v.name
                        c.actionPerformed = lambda event, key=k, self=self: self.startChoosingTarget(
                            key)
                        self.attrButtons[k] = c
                        p.layout = awt.GridLayout(1, 1)
                        p.add(c)
                    else:
                        c = swing.JComboBox()
                        for o in self.thing.editable[k]:
                            c.addItem(o)
                        c.selectedItem = v
                        c.itemStateChanged = lambda event, key=k, self=self: self.onStateChange(
                            event, key)
                        l = swing.JLabel(k)
                        p.add(l)
                        p.add(c)
                else:
                    if isinstance(v, Thing):
                        v = v.get('name')
                    if type(v) == type(1):
                        v = "%d" % v
                    if type(v) == type(1.0):
                        v = "%3.2f" % v
                    c = swing.JLabel(v)
                    l = swing.JLabel(k)
                    p.add(l)
                    p.add(c)
        self.validate()
Пример #18
0
    def arrange_detail_tab(self):
        self._jDetailPanel = swing.JPanel()
        self._jDetailPanel.setLayout(None)
        self._jDetailPanel.setPreferredSize(awt.Dimension(1368,1368))

        self._jLabelThreadTitle = swing.JLabel("Select a scan thread:")
        self._jLabelThreadTitle.setFont(Font(Font.DIALOG, Font.BOLD, 12))
        self._jLabelThreadTitle.setForeground(Color.BLACK)
        self._jLabelThreadTitle.setBounds(10, 10, 500, 20)
        self._jDetailPanel.add(self._jLabelThreadTitle)

        self._JComboThreads = swing.JComboBox([''])
        self._JComboThreads.setSelectedIndex(0)
        self._JComboThreads.setBounds(10, 30, 500, 30)
        self._jDetailPanel.add(self._JComboThreads)

        self._jButtonProgress = swing.JButton('Get Progress', actionPerformed=self.get_progress)
        self._jButtonProgress.setBounds(15, 70, 115, 30)
        self._jDetailPanel.add(self._jButtonProgress)

        self._jButtonStopScan = swing.JButton('Stop Scan', actionPerformed=self.stop_scan)
        self._jButtonStopScan.setBounds(140, 70, 115, 30)
        self._jDetailPanel.add(self._jButtonStopScan)

        self._jButtonDeleteLog = swing.JButton('Delete Logs', actionPerformed=self.delete_log)
        self._jButtonDeleteLog.setBounds(265, 70, 115, 30)
        self._jDetailPanel.add(self._jButtonDeleteLog)

        self._jButtonGetDetail = swing.JButton('Get detail', actionPerformed=self.get_detail)
        self._jButtonGetDetail.setBounds(390, 70, 115, 30)
        self._jDetailPanel.add(self._jButtonGetDetail)

        self._jLabelProgressTitle = swing.JLabel("Progress")
        self._jLabelProgressTitle.setFont(Font(Font.DIALOG, Font.BOLD, 12))
        self._jLabelProgressTitle.setForeground(Color.BLACK)
        self._jLabelProgressTitle.setBounds(10, 110, 500, 20)
        self._jDetailPanel.add(self._jLabelProgressTitle)

        self._jTextAreaScanProgress = swing.JTextArea()
        self._jTextAreaScanProgress.setLineWrap(True)
        self._jTextAreaScanProgress.setEditable(False)
        self._jScrollScanProgress = swing.JScrollPane(self._jTextAreaScanProgress)
        self._jScrollScanProgress.setVerticalScrollBarPolicy(swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS)
        self._jScrollScanProgress.setBounds(10, 130, 500, 500)
        self._jDetailPanel.add(self._jScrollScanProgress)

        self._jLabelInjectRequestTitle = swing.JLabel("All requests, select to see the request detail.")
        self._jLabelInjectRequestTitle.setFont(Font(Font.DIALOG, Font.BOLD, 12))
        self._jLabelInjectRequestTitle.setForeground(Color.BLACK)
        self._jLabelInjectRequestTitle.setBounds(550, 10, 700, 20)
        self._jDetailPanel.add(self._jLabelInjectRequestTitle)

        self.table_data = [['1a','1b', '1c'], ['2a','2b', '2c']]
        self.table_header = ['#', 'Inject_type', 'Result','Seperator', 'Command', 'Keys']
        self.table_model = CustomDefaultTableModel(None, self.table_header)
        self._jTextAreaInjectRequest = CustomTable(self, self.table_model)
        self._jTextAreaInjectRequest.setRowSorter(CustomTableRowSorter(self.table_model))
        self._jScrollInjectReques = swing.JScrollPane(self._jTextAreaInjectRequest)
        self._jScrollInjectReques.setVerticalScrollBarPolicy(swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS)
        self._jScrollInjectReques.setBounds(550, 30, 700, 200)
        self._jDetailPanel.add(self._jScrollInjectReques)

        self._dictionaryOfTextAreas = {}

        self._request_detail_title = swing.JLabel("Request Detail")
        self._request_detail_title.setFont(Font(Font.DIALOG, Font.BOLD, 12))
        self._request_detail_title.setForeground(Color.BLACK)
        self._request_detail_title.setBounds(550, 240, 340, 20)
        self._jDetailPanel.add(self._request_detail_title)

        self._dictionaryOfTextAreas['Request'] = swing.JTextArea()
        self._dictionaryOfTextAreas['Request'].setEditable(False)
        self._request_detail_scroll_pane = swing.JScrollPane(self._dictionaryOfTextAreas['Request'])
        self._request_detail_scroll_pane.setBounds(550, 260, 340, 200)
        self._jDetailPanel.add(self._request_detail_scroll_pane)

        self._response_detail_title = swing.JLabel("Response Detail")
        self._response_detail_title.setFont(Font(Font.DIALOG, Font.BOLD, 12))
        self._response_detail_title.setForeground(Color.BLACK)
        self._response_detail_title.setBounds(910, 240, 340, 20)
        self._jDetailPanel.add(self._response_detail_title)

        self._dictionaryOfTextAreas['Response'] = swing.JTextArea()
        self._dictionaryOfTextAreas['Response'].setEditable(False)
        self._response_detail_scroll_pane = swing.JScrollPane(self._dictionaryOfTextAreas['Response'])
        self._response_detail_scroll_pane.setBounds(910, 260, 340, 200)
        self._jDetailPanel.add(self._response_detail_scroll_pane)

        self._result_detail_title = swing.JLabel("Injection Result")
        self._result_detail_title.setFont(Font(Font.DIALOG, Font.BOLD, 12))
        self._result_detail_title.setForeground(Color.BLACK)
        self._result_detail_title.setBounds(550, 460, 700, 20)
        self._jDetailPanel.add(self._result_detail_title)

        self._dictionaryOfTextAreas['Result'] = swing.JTextArea()
        self._dictionaryOfTextAreas['Result'].setBounds(550, 480, 700, 50)
        self._jDetailPanel.add(self._dictionaryOfTextAreas['Result'])

        self._jButtonDownloadLogs = swing.JButton('Download logs', actionPerformed=self.download_all_logs)
        self._jButtonDownloadLogs.setBounds(1000, 540, 115, 30)
        self._jDetailPanel.add(self._jButtonDownloadLogs)

        self._jConfigTab.addTab("Detail", self._jDetailPanel)
Пример #19
0
    def arrange_request_tab(self):
        self._jRequestPanel = swing.JPanel()
        self._jRequestPanel.setLayout(None)
        self._jRequestPanel.setPreferredSize(awt.Dimension(1368,1368))

        self._jLabelDecpription1 = swing.JLabel("Command Injection")
        self._jLabelDecpription1.setFont(Font(Font.DIALOG, Font.BOLD, 40))
        self._jLabelDecpription1.setForeground(Color.PINK)
        self._jLabelDecpription1.setBounds(10, 10, 800, 50)
        self._jRequestPanel.add(self._jLabelDecpription1)

        self._jLabelDecpription2 = swing.JLabel()
        self._jLabelDecpription2.setText("Input a request information and your settings.")
        self._jLabelDecpription2.setBounds(10, 70, 300, 20)
        self._jRequestPanel.add(self._jLabelDecpription2)

        self._jLabelScanIPListen = swing.JLabel()
        self._jLabelScanIPListen.setText('URL:')
        self._jLabelScanIPListen.setBounds(10, 100, 150, 30)
        self._jRequestPanel.add(self._jLabelScanIPListen)

        self._jTextFieldScanURL = swing.JTextField()
        self._jTextFieldScanURL.setBounds(120, 100, 500, 30)
        self._jRequestPanel.add(self._jTextFieldScanURL)

        # Method
        self._jLabelScanMethod = swing.JLabel()
        self._jLabelScanMethod.setText('Set method:')
        self._jLabelScanMethod.setBounds(10, 140, 150, 30)
        self._jRequestPanel.add(self._jLabelScanMethod)

        self._jComboScanMethod = swing.JComboBox(METHODS)
        self._jComboScanMethod.setSelectedIndex(0)
        self._jComboScanMethod.setBounds(120, 140, 500, 30)
        self._jRequestPanel.add(self._jComboScanMethod)

        # Payloads
        self._jLabelScanPayload = swing.JLabel()
        self._jLabelScanPayload.setText('Post Data:')
        self._jLabelScanPayload.setBounds(10, 180, 150, 30)
        self._jRequestPanel.add(self._jLabelScanPayload)

        self._jTextAreaScanPayload = swing.JTextArea()
        self._jTextAreaScanPayload.setLineWrap(True)
        self._jTextAreaScanPayload.setEditable(True)
        self._jScrollPanePayload = swing.JScrollPane(self._jTextAreaScanPayload)
        self._jScrollPanePayload.setVerticalScrollBarPolicy(swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS)
        self._jScrollPanePayload.setBounds(120, 180, 500, 100)
        self._jRequestPanel.add(self._jScrollPanePayload)

        # Headers Area
        self._jLabelScanCookies = swing.JLabel()
        self._jLabelScanCookies.setText('Cookies:')
        self._jLabelScanCookies.setBounds(10, 290, 150, 30)
        self._jRequestPanel.add(self._jLabelScanCookies)

        self._jTextFieldCookies = swing.JTextField()
        self._jTextFieldCookies.setBounds(120, 290, 500, 30)
        self._jRequestPanel.add(self._jTextFieldCookies)

        self._jCheckCookies = swing.JCheckBox('Test this header.')
        self._jCheckCookies.setBounds(620, 290, 150, 30)
        self._jRequestPanel.add(self._jCheckCookies)

        self._jLabelScanReferer = swing.JLabel()
        self._jLabelScanReferer.setText('Referer:')
        self._jLabelScanReferer.setBounds(10, 330, 150, 30)
        self._jRequestPanel.add(self._jLabelScanReferer)

        self._jTextFieldReferer = swing.JTextField()
        self._jTextFieldReferer.setBounds(120, 330, 500, 30)
        self._jRequestPanel.add(self._jTextFieldReferer)

        self._jCheckReferer = swing.JCheckBox('Test this header.')
        self._jCheckReferer.setBounds(620, 330, 150, 30)
        self._jRequestPanel.add(self._jCheckReferer)

        self._jLabelScanUserAgent = swing.JLabel()
        self._jLabelScanUserAgent.setText('User-Agent:')
        self._jLabelScanUserAgent.setBounds(10, 370, 150, 30)
        self._jRequestPanel.add(self._jLabelScanUserAgent)

        self._jTextFieldUserAgent = swing.JTextField()
        self._jTextFieldUserAgent.setBounds(120, 370, 500, 30)
        self._jRequestPanel.add(self._jTextFieldUserAgent)

        self._jCheckUserAgent = swing.JCheckBox('Test this header.')
        self._jCheckUserAgent.setBounds(620, 370, 150, 30)
        self._jRequestPanel.add(self._jCheckUserAgent)

        self._jLabelScanHeader = swing.JLabel()
        self._jLabelScanHeader.setText('Custom headers:')
        self._jLabelScanHeader.setBounds(10, 410, 150, 30)
        self._jRequestPanel.add(self._jLabelScanHeader)

        self._jTextAreaScanHeader = swing.JTextArea()
        self._jTextAreaScanHeader.setLineWrap(True)
        self._jTextAreaScanHeader.setEditable(True)
        self._jScrollPaneHeader = swing.JScrollPane(self._jTextAreaScanHeader)
        self._jScrollPaneHeader.setVerticalScrollBarPolicy(swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS)
        self._jScrollPaneHeader.setBounds(120, 410, 500, 100)
        self._jRequestPanel.add(self._jScrollPaneHeader)

        self._jButtonTestConnection = swing.JButton('Test Connection', actionPerformed=self.test_connection)
        self._jButtonTestConnection.setBounds(90, 560, 150, 30)
        self._jRequestPanel.add(self._jButtonTestConnection)

        self._jButtonStartScan = swing.JButton('Send', actionPerformed=self.thread_run_scan)
        self._jButtonStartScan.setBounds(240, 560, 150, 30)
        self._jRequestPanel.add(self._jButtonStartScan)

        self._jButtonStartScan = swing.JButton('Clear', actionPerformed=self.clear)
        self._jButtonStartScan.setBounds(390, 560, 150, 30)
        self._jRequestPanel.add(self._jButtonStartScan)
        
        '''
        self._jLabelScanHeader = swing.JLabel()
        self._jLabelScanHeader.setText('Debug level:')
        self._jLabelScanHeader.setBounds(10, 520, 150, 30)
        self._jRequestPanel.add(self._jLabelScanHeader)

        self._JComboDebugLevel = swing.JComboBox(debug_level)
        self._JComboDebugLevel.setSelectedIndex(0)
        self._JComboDebugLevel.setBounds(120, 520, 150, 30)
        self._jRequestPanel.add(self._JComboDebugLevel)

        # TODO: remove this testing button after developement
        self._jButtonTestData = swing.JButton('Test Data', actionPerformed=self.add_test_data)
        self._jButtonTestData.setBounds(90, 600, 150, 30)
        self._jRequestPanel.add(self._jButtonTestData)
        '''

        #self._JBarProgress = swing.JProgressBar(0, 100, value=50, stringPainted=True)
        #self._JBarProgress.setBounds(10, 580, 600, 20)

        self._jConfigTab.addTab("Request", self._jRequestPanel)
Пример #20
0
    def createWidgets(self):

        blayout = java.awt.BorderLayout()
        self.setLayout(blayout)
        #hbox = swing.JPanel( java.awt.GridLayout( 1, 2 ) )
        #tcontainer = swing.JPanel( java.awt.BorderLayout() )
        #self.slist = slist = swing.JTable()
        #slist.getSelectionModel().setSelectionMode( swing.ListSelectionModel.SINGLE_SELECTION )
        #rh = slist.getRowHeight()
        #pvs = slist.getPreferredScrollableViewportSize()
        #pvs2 = pvs.clone()
        #pvs2.height = rh * 5
        #slist.setPreferredScrollableViewportSize( pvs2 )
        #lsp = swing.JScrollPane( slist )
        #tcontainer.add( lsp, java.awt.BorderLayout.CENTER )
        #hbox.add( tcontainer )

        self.commentarea = commentarea = swing.JTextPane()
        #self.__configureEditor()
        CutCopyPaste(commentarea)
        self.csp = csp = swing.JScrollPane(commentarea)
        self.backdrop = swing.JPanel()
        overlay = swing.OverlayLayout(self.backdrop)
        self.backdrop.setLayout(overlay)
        self.backdrop.add(csp)
        mb_ca = swing.JPanel(java.awt.BorderLayout())
        mb_ca.add(self.backdrop, java.awt.BorderLayout.CENTER)
        mb = swing.JMenuBar()
        #jm = swing.JMenu( "Options" )
        #mb.add( jm )
        #jmi = swing.JCheckBoxMenuItem( "Show Comments In Outline" )
        #jm.add( jmi )
        #jmi.setState( 1 )
        #jmi.actionPerformed = self.__showCommentsInOutline
        mb_ca.add(mb, java.awt.BorderLayout.NORTH)
        #hbox.add( mb_ca )
        #self.add( hbox, java.awt.BorderLayout.CENTER )
        self.add(mb_ca)
        self.__configureEditor()
        #jm.add( tcontainer )
        #jm2 = swing.JMenu( "Commentaries" )

        #jm2.add( tcontainer )
        #mb.add( jm2 )

        aballoon = swing.ImageIcon(
            g.os_path_join(g.app.loadDir, "..", "Icons", "AddTBalloon.gif"))
        sballoon = swing.ImageIcon(
            g.os_path_join(g.app.loadDir, "..", "Icons",
                           "SubtractTBalloon.gif"))
        #bpanel = swing.JPanel()
        add = swing.JMenuItem("Add Comment", aballoon)
        add.setToolTipText("Add Comment")
        add.actionPerformed = self.addComment
        remove = swing.JMenuItem("Remove Comment", sballoon)
        remove.setToolTipText("Remove Comment")
        remove.actionPerformed = self.removeComment
        #bpanel.add( add )
        #bpanel.add( remove )
        #tcontainer.add( bpanel, java.awt.BorderLayout.SOUTH )
        jm2 = swing.JMenu("Commentaries")
        jmi = swing.JCheckBoxMenuItem("Show Comments In Outline")
        jm2.add(jmi)
        jmi.setState(1)
        jmi.actionPerformed = self.__showCommentsInOutline
        jm2.add(add)
        jm2.add(remove)
        #jm2.add( tcontainer )
        mb.add(jm2)

        self.ccbmodel = self.CommentCBModel(self)
        self.jcb = jcb = swing.JComboBox(self.ccbmodel)
        #print jcb.getEditor().getEditorComponent().__class__.__bases__
        self.jcb.getEditor().getEditorComponent().getDocument(
        ).addDocumentListener(self.ccbmodel)
        jcb.addItemListener(self)
        jcb.setEditable(1)
        mb.add(jcb)