def setup_requester_tab(self): self.historyRequestResponse = RequestResponseWidget( self.framework, self.mainWindow.requesterHistoryTabWidget, self.mainWindow.requesterHistorySearchResultsPlaceholder, self) self.requesterHistoryDataModel = ResponsesDataModel.ResponsesDataModel( self.framework, self) self.mainWindow.requesterHistoryTreeView.setModel( self.requesterHistoryDataModel) self.mainWindow.requesterHistoryTreeView.activated.connect( self.fill_history_request_response) self.mainWindow.requesterHistoryTreeView.clicked.connect( self.fill_history_request_response) self.mainWindow.requesterHistoryTreeView.doubleClicked.connect( self.requester_history_item_double_clicked) self.historyResponsesContextMenu = ResponsesContextMenuWidget( self.framework, self.requesterHistoryDataModel, self.mainWindow.requesterHistoryTreeView, self) self.historyResponsesContextMenu.set_currentChanged_callback( self.fill_history_request_response) self.sequenceRunnerRequestResponse = RequestResponseWidget( self.framework, self.mainWindow.sequenceRunnerTabWidget, self.mainWindow.sequenceRunnerSearchResultsPlaceholder, self) self.sequenceRunnerDataModel = ResponsesDataModel.ResponsesDataModel( self.framework, self) self.mainWindow.sequenceRunnerTreeView.setModel( self.sequenceRunnerDataModel) self.mainWindow.sequenceRunnerTreeView.activated.connect( self.fill_sequence_runner_request_response) self.mainWindow.sequenceRunnerTreeView.clicked.connect( self.fill_sequence_runner_request_response) self.mainWindow.sequenceRunnerTreeView.doubleClicked.connect( self.requester_sequence_runner_item_double_clicked) self.sequence_runnerResponsesContextMenu = ResponsesContextMenuWidget( self.framework, self.sequenceRunnerDataModel, self.mainWindow.sequenceRunnerTreeView, self) self.sequence_runnerResponsesContextMenu.set_currentChanged_callback( self.fill_sequence_runner_request_response) self.miniResponseRenderWidget = MiniResponseRenderWidget( self.framework, self.mainWindow.reqRespTabWidget, True, self) self.scopeController = self.framework.getScopeController()
def __init__(self, framework, mainWindow): QObject.__init__(self, mainWindow) self.framework = framework self.mainWindow = mainWindow self.mainWindow.domFuzzerStartButton.clicked.connect( self.handle_fuzzerStart_clicked) self.mainWindow.domFuzzerStopButton.clicked.connect( self.handle_fuzzerStop_clicked) self.mainWindow.domFuzzerClearQueueButton.clicked.connect( self.handle_fuzzerClearQueue_clicked) self.mainWindow.domFuzzerStartButton.setEnabled(True) self.mainWindow.domFuzzerStopButton.setEnabled(False) self.miniResponseRenderWidget = MiniResponseRenderWidget( self.framework, self.mainWindow.domFuzzerResultsTabWidget, False, self) self.setup_fuzz_window() self.Data = None self.cursor = None self.framework.subscribe_database_events(self.db_attach, self.db_detach)
def __init__(self, framework, mainWindow): QObject.__init__(self, mainWindow) self.framework = framework self.mainWindow = mainWindow self.mainWindow.wfStdPreChk.stateChanged.connect(self.handle_wfStdPreChk_stateChanged) self.mainWindow.wfStdPostChk.stateChanged.connect(self.handle_wfStdPostChk_stateChanged) self.mainWindow.wfTempSeqChk.stateChanged.connect(self.handle_wfTempSeqChk_stateChanged) # Handle the toggling of payload mappings in the config tab self.mainWindow.wfPay1FuzzRadio.toggled.connect(self.handle_payload_toggled) self.mainWindow.wfPay1StaticRadio.toggled.connect(self.handle_payload_toggled) self.mainWindow.wfPay1DynamicRadio.toggled.connect(self.handle_payload_toggled) self.mainWindow.wfPay2FuzzRadio.toggled.connect(self.handle_payload_toggled) self.mainWindow.wfPay2StaticRadio.toggled.connect(self.handle_payload_toggled) self.mainWindow.wfPay2DynamicRadio.toggled.connect(self.handle_payload_toggled) self.mainWindow.wfPay3FuzzRadio.toggled.connect(self.handle_payload_toggled) self.mainWindow.wfPay3StaticRadio.toggled.connect(self.handle_payload_toggled) self.mainWindow.wfPay3DynamicRadio.toggled.connect(self.handle_payload_toggled) self.mainWindow.wfPay4FuzzRadio.toggled.connect(self.handle_payload_toggled) self.mainWindow.wfPay4StaticRadio.toggled.connect(self.handle_payload_toggled) self.mainWindow.wfPay4DynamicRadio.toggled.connect(self.handle_payload_toggled) self.mainWindow.wfPay5FuzzRadio.toggled.connect(self.handle_payload_toggled) self.mainWindow.wfPay5StaticRadio.toggled.connect(self.handle_payload_toggled) self.mainWindow.wfPay5DynamicRadio.toggled.connect(self.handle_payload_toggled) self.mainWindow.fuzzerHistoryClearButton.clicked.connect(self.fuzzer_history_clear_button_clicked) # inserted to initially fill the sequences box. # ToDo: Need to do this better self.mainWindow.mainTabWidget.currentChanged.connect(self.handle_mainTabWidget_currentChanged) self.mainWindow.webFuzzTab.currentChanged.connect(self.handle_webFuzzTab_currentChanged) self.mainWindow.stdFuzzTab.currentChanged.connect(self.handle_stdFuzzTab_currentChanged) # self.mainWindow.webFuzzTab.currentChanged.connect(self.fill_payloads) self.mainWindow.wfStdAddButton.clicked.connect(self.insert_payload_marker) self.mainWindow.wfStdStartButton.clicked.connect(self.start_fuzzing_clicked) self.mainWindow.wfDataDictonaryAddButton.clicked.connect(self.handle_wfDataDictonaryAddButton_clicked) self.framework.subscribe_populate_webfuzzer_response_id(self.webfuzzer_populate_response_id) self.framework.subscribe_sequences_changed(self.fill_sequences) self.mainWindow.wfFunctionsComboBox.activated.connect(self.fill_function_edit) self.mainWindow.wfFunctionsSaveButton.clicked.connect(self.save_function_file) self.mainWindow.wfFunctionsDeleteButton.clicked.connect(self.del_function_file) self.miniResponseRenderWidget = MiniResponseRenderWidget(self.framework, self.mainWindow.stdFuzzResultsTabWidget, True, self) self.re_request = re.compile(r'^(\S+)\s+((?:https?://(?:\S+\.)+\w+(?::\d+)?)?/.*)\s+HTTP/\d+\.\d+\s*$', re.I) self.re_request_cookie = re.compile(r'^Cookie:\s*(\S+)', re.I|re.M) self.re_replacement = re.compile(r'\$\{(\w+)\}') self.setup_fuzzer_tab() self.setup_functions_tab() self.functions_dir = os.path.join(self.framework.get_data_dir(), 'functions') self.Attacks = Payloads.Payloads(self.framework) self.Attacks.list_files() # Fill the payloads combo boxes on init self.fill_payloads() self.pending_fuzz_requests = None # Fill the functions combo box on init self.fill_function_combo_box() self.mainWindow.wfDataDictionaryDataTable.setColumnCount(2) self.mainWindow.wfDataDictionaryDataTable.setHorizontalHeaderLabels(['Replacement', 'Value']) self.Data = None self.cursor = None self.framework.subscribe_database_events(self.db_attach, self.db_detach)