burp
Interface IScannerCheck


public interface IScannerCheck

Extensions can implement this interface and then call IBurpExtenderCallbacks.registerScannerCheck() to register a custom Scanner check. When performing scanning, Burp will ask the check to perform active or passive scanning on the base request, and report any Scanner issues that are identified.


Method Summary
 int consolidateDuplicateIssues(IScanIssue existingIssue, IScanIssue newIssue)
          The Scanner invokes this method when the custom Scanner check has reported multiple issues for the same URL path.
 java.util.List<IScanIssue> doActiveScan(IHttpRequestResponse baseRequestResponse, IScannerInsertionPoint insertionPoint)
          The Scanner invokes this method for each insertion point that is actively scanned.
 java.util.List<IScanIssue> doPassiveScan(IHttpRequestResponse baseRequestResponse)
          The Scanner invokes this method for each base request / response that is passively scanned.
 

Method Detail

doPassiveScan

java.util.List<IScanIssue> doPassiveScan(IHttpRequestResponse baseRequestResponse)
The Scanner invokes this method for each base request / response that is passively scanned. Note: Extensions should only analyze the HTTP messages provided during passive scanning, and should not make any new HTTP requests of their own.

Parameters:
baseRequestResponse - The base HTTP request / response that should be passively scanned.
Returns:
A list of IScanIssue objects, or null if no issues are identified.

doActiveScan

java.util.List<IScanIssue> doActiveScan(IHttpRequestResponse baseRequestResponse,
                                        IScannerInsertionPoint insertionPoint)
The Scanner invokes this method for each insertion point that is actively scanned. Extensions may issue HTTP requests as required to carry out active scanning, and should use the IScannerInsertionPoint object provided to build scan requests for particular payloads. Note: Scan checks should submit raw non-encoded payloads to insertion points, and the insertion point has responsibility for performing any data encoding that is necessary given the nature and location of the insertion point.

Parameters:
baseRequestResponse - The base HTTP request / response that should be actively scanned.
insertionPoint - An IScannerInsertionPoint object that can be queried to obtain details of the insertion point being tested, and can be used to build scan requests for particular payloads.
Returns:
A list of IScanIssue objects, or null if no issues are identified.

consolidateDuplicateIssues

int consolidateDuplicateIssues(IScanIssue existingIssue,
                               IScanIssue newIssue)
The Scanner invokes this method when the custom Scanner check has reported multiple issues for the same URL path. This can arise either because there are multiple distinct vulnerabilities, or because the same (or a similar) request has been scanned more than once. The custom check should determine whether the issues are duplicates. In most cases, where a check uses distinct issue names or descriptions for distinct issues, the consolidation process will simply be a matter of comparing these features for the two issues.

Parameters:
existingIssue - An issue that was previously reported by this Scanner check.
newIssue - An issue at the same URL path that has been newly reported by this Scanner check.
Returns:
An indication of which issue(s) should be reported in the main Scanner results. The method should return -1 to report the existing issue only, 0 to report both issues, and 1 to report the new issue only.