Burp Suite User Forum

Create new post

Unknown object 'burp.tn5' causing AttributeError in consolidateDuplicateIssues method

Superman | Last updated: Jan 09, 2023 11:46AM UTC

An unknown object 'burp.tn5' is being passed into consolidateDuplicateIssues method which is causing the following exception to occur. I am unable to figure out the reasoning. I have provided snippets of code to assist debugging. Tested using BurpSuite Pro v2022.9.6 with Jython v2.7.2 Traceback (most recent call last): File "C:\Users\****\Desktop\cc_checker.py", line 225, in consolidateDuplicateIssues existing_matches = existingIssue.getMatchList() AttributeError: 'burp.tn5' object has no attribute 'getMatchList' at org.python.core.PyException.doRaise(PyException.java:211) at org.python.core.Py.makeException(Py.java:1638) at org.python.core.Py.makeException(Py.java:1642) at org.python.core.Py.makeException(Py.java:1646) at org.python.core.Py.makeException(Py.java:1650) at org.python.core.PyTableCode.call(PyTableCode.java:173) at org.python.core.PyBaseCode.call(PyBaseCode.java:306) at org.python.core.PyBaseCode.call(PyBaseCode.java:197) at org.python.core.PyFunction.__call__(PyFunction.java:485) at org.python.core.PyMethod.instancemethod___call__(PyMethod.java:237) at org.python.core.PyMethod.__call__(PyMethod.java:228) at org.python.core.PyMethod.__call__(PyMethod.java:218) at org.python.core.PyMethod.__call__(PyMethod.java:213) at org.python.core.PyObject._jcallexc(PyObject.java:3565) at org.python.core.PyObject._jcall(PyObject.java:3598) at org.python.proxies.__main__$BurpExtender$0.consolidateDuplicateIssues(Unknown Source) at burp.xak.consolidateIssues(Unknown Source) at burp.ah.run(Unknown Source) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:833 Code for consolidateDuplicateIssues def consolidateDuplicateIssues(self, existingIssue, newIssue): # Get the path of each issue existing_path = existingIssue.getHttpMessages()[0].getUrl().getPath() new_path = newIssue.getHttpMessages()[0].getUrl().getPath() existing_issue_severity = existingIssue.getSeverity() newIssue_severity = newIssue.getSeverity() # Compare the paths and severity of the issues if existing_path == new_path and existing_issue_severity == newIssue_severity: # Check if the new issue contains any previously reported numbers existing_matches = existingIssue.getMatchList() new_matches = newIssue.getMatchList() if existing_matches == new_matches: return -1 else: return 0 else: return 0 I have getMatchList defined in CustomIssue class that returns list of matches reported in each finding. Each finding instance is created as such issue = CustomIssue(baseRequestResponse.getHttpService(), self.helpers.analyzeRequest(baseRequestResponse).getUrl(), baseRequestResponse, "Issue Title", "Issue Description", "Information", "Tentative", valid_matches)

Superman | Last updated: Jan 09, 2023 11:48AM UTC

Note: This traceback error only gets triggered when the same page with same data triggers the finding (duplicate instance).

Hannah, PortSwigger Agent | Last updated: Jan 09, 2023 01:24PM UTC

Hi

The consolidateDuplicateIssues() function is provided with two IScanIssue objects, not your CustomIssue objects. This means that there is no getMatchList() function available to call.

Superman | Last updated: Jan 09, 2023 04:36PM UTC

That explains it. Thank you for clarifying the query.

You must be an existing, logged-in customer to reply to a thread. Please email us for additional support.