Skip to content

Commit

Permalink
Added Request Response for Vulnerability
Browse files Browse the repository at this point in the history
  • Loading branch information
Anof-cyber committed Jul 8, 2023
1 parent d5416c1 commit 783640a
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 4 deletions.
82 changes: 78 additions & 4 deletions PentestMapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,10 @@
,JScrollPane, JSplitPane, JLabel, JPopupMenu, JComboBox, DefaultCellEditor, JToggleButton, JTextArea
,JPanel, JFileChooser, JSeparator,LayoutStyle, Box )

from javax.swing.table import ( DefaultTableModel, AbstractTableModel, TableRowSorter )
from javax.swing.event import ListSelectionListener


from javax.swing.table import ( DefaultTableModel, AbstractTableModel, TableRowSorter, TableColumn )
from javax.swing.SwingConstants import VERTICAL
from java.lang import Short
import javax.swing.Box
Expand Down Expand Up @@ -283,8 +286,18 @@ def registerExtenderCallbacks(self, callbacks):













# creating the table to vulnerability tab
self.colNames3 = ('URL', 'Parameters','Vulnerability','Severity')
self.colNames3 = ('URL', 'Parameters','Vulnerability','Severity','Request', 'Response')
self.dataModel2 = CustomDefaultTableModelHosts2(None,self.colNames3)
self.table3 = JTable(self.dataModel2)
self.table3.setAutoCreateRowSorter(True)
Expand All @@ -296,6 +309,21 @@ def registerExtenderCallbacks(self, callbacks):
comboColumn2 = self.table3.getColumnModel().getColumn(3)
comboColumn2.setCellEditor(DefaultCellEditor(self.comboBox2))


request_column = TableColumn()
request_column.setModelIndex(4)
request_column.setMinWidth(0)
request_column.setMaxWidth(0)
request_column.setResizable(False)
response_column = TableColumn()
response_column.setModelIndex(5)
response_column.setMinWidth(0)
response_column.setMaxWidth(0)
response_column.setResizable(False)
column_model = self.table3.getColumnModel()
column_model.addColumn(request_column)
column_model.addColumn(response_column)

# Adding a right click menu for Vulnerability
popupMenu2 = JPopupMenu()
deletevulnerability = JMenuItem("Delete Vulnerability", actionPerformed=self.deletevuln)
Expand All @@ -313,8 +341,31 @@ def registerExtenderCallbacks(self, callbacks):
self.scrollPane3.getViewport().setView((self.table3))
self.tablePanel3.add(self.scrollPane3)


self.requestViewer1 = callbacks.createMessageEditor(None, True)
self.responseViewer1 = callbacks.createMessageEditor(None, True)

self.editor_view1 = JTabbedPane()
self.editor_view1.addTab("Request", self.requestViewer1.getComponent())
self.editor_view1.addTab("Response", self.responseViewer1.getComponent())
spl1 = JSplitPane(JSplitPane.VERTICAL_SPLIT)

spl1.setLeftComponent(self.scrollPane3)
spl1.setRightComponent(self.editor_view1)

#listener = CustomSelectionListener(self.dataModel2, self.requestViewer1, self.responseViewer1)
#self.table3.getSelectionModel().addListSelectionListener(listener)

listener = CustomSelectionListener(self.table3, self.requestViewer1, self.responseViewer1)
self.table3.getSelectionModel().addListSelectionListener(listener)




# adding the table UI to vulnerability tab
self.ThirdTab.add(self.scrollPane3, BorderLayout.CENTER)
self.ThirdTab.add(spl1, BorderLayout.CENTER)
#self.ThirdTab.add(self.scrollPane3, BorderLayout.CENTER)


# Config Tab
self.FourthTab = JPanel()
Expand Down Expand Up @@ -995,7 +1046,16 @@ def getVulnerabilitydataa(self,invocation):
reqRes = invocation.getSelectedMessages()
for items in reqRes:
self.url = items.getUrl()
obj = [str(self.url), None]
req = self.helpers.analyzeRequest(items)
gettingrequest = items.getRequest()
self.requestinst = self.helpers.bytesToString(gettingrequest)
self.responseinbytes = items.getResponse()
self.responseinst = self.helpers.bytesToString(self.responseinbytes)


obj = [str(self.url), None,'','',self.requestinst,self.responseinst]


self.dataModel2.addRow(obj)


Expand Down Expand Up @@ -1246,3 +1306,17 @@ def isCellEditable(self, row, column):



class CustomSelectionListener(ListSelectionListener):
def __init__(self, table, request_viewer, response_viewer):
self.table = table
self.request_viewer = request_viewer
self.response_viewer = response_viewer

def valueChanged(self, event):
if not event.getValueIsAdjusting():
selected_row = self.table.getSelectedRow()
if selected_row != -1:
request_data = self.table.getValueAt(selected_row, 4) # Assuming column index 4 is the Request column
response_data = self.table.getValueAt(selected_row, 5) # Assuming column index 5 is the Response column
self.request_viewer.setMessage(request_data, True)
self.response_viewer.setMessage(response_data, True)
4 changes: 4 additions & 0 deletions pentestmapper/APIMapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,3 +130,7 @@ def setValueAt(self, value, rowIndex, columnIndex):

else:
self.callbacks.printError("Table is empty")




0 comments on commit 783640a

Please # to comment.