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
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
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)
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
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
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()
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 )
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()
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
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
#@+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
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
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
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
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
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
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()
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)
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)
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)