def send_response_data_to_spider(self):
     index = self.treeView.currentIndex()
     if len(self.treeViewSelectionModel.selectedRows()) > 1:
         id_list = []
         for index in self.treeViewSelectionModel.selectedRows():
             Id = interface.index_to_id(self.dataModel, index)
             id_list.append(str(Id))
         self.framework.send_response_list_to_spider(id_list)
     else:
         Id = interface.index_to_id(self.dataModel, index)
         if Id:
             self.framework.send_response_id_to_spider(Id)
Beispiel #2
0
 def fill_bottom(self, index):
     if self.searchFilling:
         return
     Id = interface.index_to_id(self.searchResultsModel, index)
     if Id:
         self.searchRequestResponse.fill(str(Id))
         self.searchRequestResponse.set_search_info(str(self.searchText.text()).strip(), self.cbRegularExpression.isChecked())
Beispiel #3
0
 def fill_bottom(self, index):
     """ Return the data from the database and fill bottom part of main window """
     if self.fillingDataTree:
         return
     Id = interface.index_to_id(self.responsesDataModel, index)
     if Id:
         self.viewTabRequestResponse.fill(str(Id))
 def export_to_raft_capture(self):
     # TODO: consider implementing a tasklet if this is the entire DB being exported
     filename = 'RaftExport-%s' % int(time.time())
     file = QFileDialog.getSaveFileName(None, "Save to file", filename, "XML File (*.xml);;XZ XML File (*.xml.xz)")
     if file:
         adapter = ParseAdapter()
         # TODO: refactor
         filename = str(file)
         while '.xml.xml' in filename:
             filename = filename.replace('.xml.xml', '.xml')
         if filename.endswith('.xml.xz'):
             while '.xml.xz.xml.xz' in filename:
                 filename = filename.replace('.xml.xz.xml.xz', '.xml.xz')
             fh = lzma.LZMAFile(filename, 'w')
         elif filename.endswith('.xml'):
             filename = filename.replace('.xml.xml', '.xml')
             fh = open(filename, 'wb')
         else:
             raise Exception('unhandled file type: %s' % (filename))
         Data = self.framework.getDB()
         cursor = Data.allocate_thread_cursor()
         try:
             fh.write(b'<raft version="1.0">\n')
             for index in self.treeViewSelectionModel.selectedRows():
                 Id = interface.index_to_id(self.dataModel, index)
                 if Id:
                     capture = RaftDbCapture()
                     capture.populate_by_id(self.framework, Data, cursor, Id)
                     fh.write(adapter.format_as_xml(capture).encode('utf-8'))
             fh.write(b'</raft>')
             fh.close()
         finally:
             cursor.close()
             Data.release_thread_cursor(cursor)
             Data, cursor = None, None
    def send_response_data_to_requester(self):
        id_list = []
        for index in self.treeViewSelectionModel.selectedRows():
            Id = interface.index_to_id(self.dataModel, index)
            if Id:
                id_list.append(int(Id))

        if 1 == len(id_list):
            self.framework.send_response_id_to_requester(id_list[0])
        else:
            self.framework.send_responses_to_bulk_requester(id_list)
Beispiel #6
0
 def fill_fuzzer_history(self, index):
     Id = interface.index_to_id(self.fuzzerHistoryDataModel, index)
     if Id:
         row = self.Data.read_responses_by_id(self.cursor, Id)
         if not row:
             return
         responseItems = interface.data_row_to_response_items(row)
         url = responseItems[ResponsesTable.URL]
         reqHeaders = responseItems[ResponsesTable.REQ_HEADERS]
         reqData = responseItems[ResponsesTable.REQ_DATA]
         resHeaders = responseItems[ResponsesTable.RES_HEADERS]
         resData = responseItems[ResponsesTable.RES_DATA]
         contentType = responseItems[ResponsesTable.RES_CONTENT_TYPE]
         self.miniResponseRenderWidget.populate_response_content(url, reqHeaders, reqData, resHeaders, resData, contentType)
 def save_response_to_file(self):
     index = self.treeView.currentIndex()
     Id = interface.index_to_id(self.dataModel, index)
     curUrl = interface.index_to_url(self.dataModel, index)
     if Id and curUrl:
         splitted = urlparse.urlsplit(curUrl)
         pos = splitted.path.rindex('/')
         filename = ''
         if pos > -1:
             filename = splitted.path[pos+1:]
         
         file = QFileDialog.getSaveFileName(None, "Save to file", filename, "")
         if file:
             filename = str(file)
             fh = open(filename, 'wb')
             try:
                 rr = self.framework.get_request_response(Id)
                 fh.write(rr.responseBody)
             finally:
                 fh.close()
Beispiel #8
0
    def save_response_to_file(self):
        index = self.treeView.currentIndex()
        Id = interface.index_to_id(self.dataModel, index)
        curUrl = interface.index_to_url(self.dataModel, index)
        if Id and curUrl:
            splitted = urlparse.urlsplit(curUrl)
            pos = splitted.path.rindex('/')
            filename = ''
            if pos > -1:
                filename = splitted.path[pos + 1:]

            file = QFileDialog.getSaveFileName(None, "Save to file", filename,
                                               "")
            if file:
                filename = str(file)
                fh = open(filename, 'wb')
                try:
                    rr = self.framework.get_request_response(Id)
                    fh.write(rr.responseBody)
                finally:
                    fh.close()
Beispiel #9
0
 def export_to_raft_capture(self):
     # TODO: consider implementing a tasklet if this is the entire DB being exported
     filename = 'RaftExport-%s' % int(time.time())
     file = QFileDialog.getSaveFileName(
         None, "Save to file", filename,
         "XML File (*.xml);;XZ XML File (*.xml.xz)")
     if file:
         adapter = ParseAdapter()
         # TODO: refactor
         filename = str(file)
         while '.xml.xml' in filename:
             filename = filename.replace('.xml.xml', '.xml')
         if filename.endswith('.xml.xz'):
             while '.xml.xz.xml.xz' in filename:
                 filename = filename.replace('.xml.xz.xml.xz', '.xml.xz')
             fh = lzma.LZMAFile(filename, 'w')
         elif filename.endswith('.xml'):
             filename = filename.replace('.xml.xml', '.xml')
             fh = open(filename, 'wb')
         else:
             raise Exception('unhandled file type: %s' % (filename))
         Data = self.framework.getDB()
         cursor = Data.allocate_thread_cursor()
         try:
             fh.write(b'<raft version="1.0">\n')
             for index in self.treeViewSelectionModel.selectedRows():
                 Id = interface.index_to_id(self.dataModel, index)
                 if Id:
                     capture = RaftDbCapture()
                     capture.populate_by_id(self.framework, Data, cursor,
                                            Id)
                     fh.write(
                         adapter.format_as_xml(capture).encode('utf-8'))
             fh.write(b'</raft>')
             fh.close()
         finally:
             cursor.close()
             Data.release_thread_cursor(cursor)
             Data, cursor = None, None
Beispiel #10
0
 def response_item_double_clicked(self, index):
     Id = interface.index_to_id(self.searchResultsModel, index)
     if Id:
         dialog = RequestResponseDetailDialog(self.framework, str(Id), self)
         dialog.show()
         dialog.exec_()
Beispiel #11
0
 def response_item_double_clicked(self, index):
     Id = interface.index_to_id(self.searchResultsModel, index)
     if Id:
         dialog = RequestResponseDetailDialog(self.framework, str(Id), self)
         dialog.show()
         dialog.exec_()
Beispiel #12
0
 def requester_sequence_runner_item_double_clicked(self, index):
     Id = interface.index_to_id(self.sequenceRunnerDataModel, index)
     if Id:
         dialog = RequestResponseDetailDialog(self.framework, Id, self.mainWindow)
         dialog.show()
         dialog.exec_()
Beispiel #13
0
 def send_response_data_to_sequence_builder(self):
     index = self.treeView.currentIndex()
     Id = interface.index_to_id(self.dataModel, index)
     if Id:
         self.framework.send_response_id_to_sequence_builder(Id)
Beispiel #14
0
 def fuzzer_history_item_double_clicked(self, index):
     Id = interface.index_to_id(self.fuzzerHistoryDataModel, index)
     if Id:
         dialog = RequestResponseDetailDialog(self.framework, Id, self.mainWindow)
         dialog.show()
         dialog.exec_()
Beispiel #15
0
 def fill_sequence_runner_request_response(self, index):
     Id = interface.index_to_id(self.sequenceRunnerDataModel, index)
     if Id:
         self.sequenceRunnerRequestResponse.fill(Id)
Beispiel #16
0
 def fill_history_request_response(self, index):
     Id = interface.index_to_id(self.requesterHistoryDataModel, index)
     if Id:
         self.historyRequestResponse.fill(Id)
Beispiel #17
0
 def fill_sequence_runner_request_response(self, index):
     Id = interface.index_to_id(self.sequenceRunnerDataModel, index)
     if Id:
         self.sequenceRunnerRequestResponse.fill(Id)
 def send_response_data_to_sequence_builder(self):
     index = self.treeView.currentIndex()
     Id = interface.index_to_id(self.dataModel, index)
     if Id:
         self.framework.send_response_id_to_sequence_builder(Id)
 def send_response_data_to_click_jacking_tester(self):
     index = self.treeView.currentIndex()
     Id = interface.index_to_id(self.dataModel, index)
     if Id:
         self.framework.send_to_tester_click_jacking(Id)
Beispiel #20
0
 def response_item_double_clicked(self, index):
     Id = interface.index_to_id(self.responsesDataModel, index)
     if Id:
         dialog = RequestResponseDetailDialog(self.framework, Id, self)
         dialog.show()
         dialog.exec_()
Beispiel #21
0
 def send_response_data_to_click_jacking_tester(self):
     index = self.treeView.currentIndex()
     Id = interface.index_to_id(self.dataModel, index)
     if Id:
         self.framework.send_to_tester_click_jacking(Id)
Beispiel #22
0
 def fill_history_request_response(self, index):
     Id = interface.index_to_id(self.requesterHistoryDataModel, index)
     if Id:
         self.historyRequestResponse.fill(Id)