def setup_fuzzer_tab(self): self.fuzzerHistoryDataModel = ResponsesDataModel.ResponsesDataModel(self.framework, self) self.mainWindow.fuzzerHistoryTreeView.setModel(self.fuzzerHistoryDataModel) self.mainWindow.fuzzerHistoryTreeView.doubleClicked.connect(self.fuzzer_history_item_double_clicked) self.mainWindow.fuzzerHistoryTreeView.clicked.connect(self.handle_fuzzer_history_clicked) self.mainWindow.fuzzerHistoryTreeView.activated.connect(self.handle_fuzzer_history_clicked) self.responsesContextMenu = ResponsesContextMenuWidget(self.framework, self.fuzzerHistoryDataModel, self.mainWindow.fuzzerHistoryTreeView, self) self.responsesContextMenu.set_currentChanged_callback(self.fill_fuzzer_history)
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, parent=None): super(SearchDialog, self).__init__(parent) self.setupUi(self) self.connect(self, SIGNAL('finished()'), self.finishedHandler) self.framework = framework # progress dialog self.Progress = ProgressDialog(self) QObject.connect(self.Progress, SIGNAL('canceled()'), self.canceledHandler) self.searchRequestResponse = RequestResponseWidget( self.framework, self.searchTabWidget, self.searchSearchControlPlaceholder, self) self.searchResultsModel = ResponsesDataModel.ResponsesDataModel( self.framework, self) self.searchResultsTree.setModel(self.searchResultsModel) self.searchResultsTree.clicked.connect(self.fill_bottom) self.searchResultsTree.doubleClicked.connect( self.response_item_double_clicked) self.searchResultsTree.setSortingEnabled(True) self.searchResultsTree.sortByColumn(0, Qt.AscendingOrder) self.thread = SearchThread(self.framework, self.searchResultsModel) self.thread.start(QThread.LowestPriority) self.finished.connect(self.finishedHandler) self.searchPushButton.pressed.connect(self.startSearch) self.connect(self, SIGNAL('searchFinished()'), self.searchFinishedHandler, Qt.QueuedConnection) # Create context menu self.resultsContextMenu = ResponsesContextMenuWidget( self.framework, self.searchResultsModel, self.searchResultsTree, self) self.resultsContextMenu.set_currentChanged_callback(self.fill_bottom)
def setup_others(self): # set request response factory self.framework.setRequestResponseFactory(RequestResponseFactory.RequestResponseFactory(self.framework, self)) # scoping and spider self.framework.setScopeController(ScopeController.ScopeController(self.framework, self)) self.framework.setSpiderConfig(SpiderConfig.SpiderConfig(self.framework, self)) # setup network accessmanager self.dbNetworkAccessManager = DatabaseNetworkAccessManager(self.framework, self.framework.get_global_cookie_jar()) self.framework.setNetworkAccessManager(self.dbNetworkAccessManager) # set up tabs self.vulnerabilitiesTab = VulnerabilitiesTab.VulnerabilitiesTab(self.framework, self) self.cookiesTab = CookiesTab.CookiesTab(self.framework, self) self.requesterTab = RequesterTab.RequesterTab(self.framework, self) self.webfuzzerTab = WebFuzzerTab.WebFuzzerTab(self.framework, self) self.domFuzzerTab = DomFuzzerTab.DomFuzzerTab(self.framework, self) self.crawlerTab = CrawlerTab.CrawlerTab(self.framework, self) self.encoderTab = EncoderTab.EncoderTab(self.framework, self) self.scopingTab = ScopingTab.ScopingTab(self.framework, self) self.testerTab = TesterTab.TesterTab(self.framework, self) self.logTab = LogTab.LogTab(self.framework, self) self.quickAnalysisTab = QuickAnalysisTab.QuickAnalysisTab(self.framework, self) # sitemap self.siteMapRequestResponse = RequestResponseWidget(self.framework, self.sitemapTabPlaceholder, self.sitemapSearchControlPlaceholder, self) # TODO: cleanup site map and optimize... self.siteMapModel = SiteMapModel.SiteMapModel(self.framework) self.siteMapThread = SiteMapThread.SiteMapThread(self.framework, self.siteMapModel, self) self.siteMapThread.start(QThread.LowestPriority) self.importerThread = ImporterThread.ImporterThread(self.framework, self) self.connect(self, SIGNAL('runImportFinished()'), self.import_file_finished, Qt.QueuedConnection) self.importerThread.start(QThread.LowestPriority) self.treeViewSitemap.setContextMenuPolicy(Qt.CustomContextMenu) self.treeViewSitemapMenu = QMenu(self) treeViewSitemapCopyUrlAction = QAction("Copy URL", self) treeViewSitemapCopyUrlAction.triggered.connect(self.sitemap_copy_url) self.treeViewSitemapMenu.addAction(treeViewSitemapCopyUrlAction) self.connect(self.treeViewSitemap, SIGNAL('customContextMenuRequested(const QPoint &)'), self.sitemap_context_menu) self.treeViewSitemap.activated.connect(self.siteMapRequestResponse.viewItemSelected) # TODO: clicked is annoying sometimes self.treeViewSitemap.clicked.connect(self.siteMapRequestResponse.viewItemSelected) self.treeViewSitemap.setModel(self.siteMapModel) # view tab self.viewTabRequestResponse = RequestResponseWidget(self.framework, self.responseTabPlaceholder, self.responseSearchControlPlaceholder, self) # Responses data self.responsesDataModel = ResponsesDataModel.ResponsesDataModel(self.framework, self) self.responsesDataTree.setModel(self.responsesDataModel) self.responsesThread = ResponsesThread.ResponsesThread(self.framework, self.responsesDataModel, self) self.responsesThread.start(QThread.LowPriority) self.connect(self, SIGNAL('fillResponsesFinished()'), self.fillResponsesFinishedHandler, Qt.QueuedConnection) self.responsesContextMenu = ResponsesContextMenuWidget(self.framework, self.responsesDataModel, self.responsesDataTree, self) self.responsesContextMenu.set_currentChanged_callback(self.fill_bottom) #analysis results tab #add response widget to the bottom self.mainAnalysisTabRequestResponse = RequestResponseWidget(self.framework, self.mainAnalysisTabPlaceholder, self.mainAnalysisSearchControlPlaceholder, self) self.analyzerThread = AnalyzerThread.AnalyzerThread(self.framework, self) self.connect(self, SIGNAL('runAnalysisFinished(QString)'), self.handle_runAnalysisFinished, Qt.QueuedConnection) self.analyzerThread.start(QThread.LowestPriority) # dom fuzzer thread self.domFuzzerQueueDataModel = DomFuzzerQueueDataModel.DomFuzzerQueueDataModel(self.framework, self) self.domFuzzerFuzzQueueTable.setModel(self.domFuzzerQueueDataModel) self.domFuzzerResultsDataModel = DomFuzzerResultsDataModel.DomFuzzerResultsDataModel(self.framework, self) self.domFuzzerResultsTreeView.setModel(self.domFuzzerResultsDataModel) self.domFuzzerThread = DomFuzzerThread.DomFuzzerThread(self.framework, self.domFuzzerQueueDataModel, self.domFuzzerResultsDataModel, self) self.domFuzzerThread.start(QThread.LowestPriority) self.domFuzzerTab.set_fuzzer_thread(self.domFuzzerThread) self.domFuzzerTab.setup_fuzzer_results_treeview() # spider thread self.spiderQueueDataModel = SpiderQueueDataModel.SpiderQueueDataModel(self.framework, self) self.crawlerSpiderQueueTreeView.setModel(self.spiderQueueDataModel) self.spiderPendingResponsesDataModel = SpiderPendingResponsesDataModel.SpiderPendingResponsesDataModel(self.framework, self) self.crawlerSpiderPendingResponsesTreeView.setModel(self.spiderPendingResponsesDataModel) self.spiderPendingAnalysisDataModel = SpiderPendingAnalysisDataModel.SpiderPendingAnalysisDataModel(self.framework, self) self.crawlerSpiderPendingAnalysisTreeView.setModel(self.spiderPendingAnalysisDataModel) self.spiderInternalStateDataModel = SpiderInternalStateDataModel.SpiderInternalStateDataModel(self.framework, self) self.crawlerSpiderInternalStateTreeView.setModel(self.spiderInternalStateDataModel) self.spiderThread = SpiderThread.SpiderThread(self.framework, self.spiderQueueDataModel, self.spiderPendingResponsesDataModel, self.spiderPendingAnalysisDataModel, self.spiderInternalStateDataModel, self) self.spiderThread.start(QThread.LowestPriority) self.crawlerTab.set_spider_thread(self.spiderThread) # quick analysis thread self.quickAnalysisThread = QuickAnalysisThread.QuickAnalysisThread(self.framework, self) self.quickAnalysisThread.start(QThread.LowestPriority) self.quickAnalysisTab.set_quick_analysis_thread(self.quickAnalysisThread) # handlers self.framework.register_browser_openers(self.open_url_in_browser, self.open_content_in_browser) self.do_db_connect()