Exemple #1
0
    def testIssueCheckerOldReportedIssues(self):
        state = GenericMock()
        callbacks = GenericMock()

        issue = GenericMock()
        issue.url = URL("http://www.example.org/users")
        issue.issueName = "SQL Injection"

        callbacks.getScanIssues.return_value = [issue]

        ic = IssueChecker(state, callbacks)
        self.assertTrue(
            ic.reportedIssues['SQL Injection|http://www.example.org/users'])
Exemple #2
0
    def testIssueCheckerTwice(self):
        ic, state, callbacks = self._ic()

        state.scope_urls = ["http://example.org/"]

        ic.reportIssue = GenericMock()

        issue = GenericMock()
        issue.url = URL("http://www.example.org/users")
        issue.issueName = "SQL Injection"

        secondIssue = GenericMock()
        secondIssue.url = URL("http://www.example.org/users")
        secondIssue.issueName = "Remote Code Execution"

        callbacks.getScanIssues.return_value = [issue]

        ic.run()
        self.assertEquals(ic.reportIssue.call_count, 1)

        callbacks.getScanIssues.return_value = [issue, secondIssue]

        ic.run()
        self.assertEquals(ic.reportIssue.call_count, 2)
Exemple #3
0
    def testIssueCheckerOnlyOnce(self):
        ic, state, callbacks = self._ic()

        state.scope_urls = ["http://example.org/"]

        ic.reportIssue = GenericMock()

        issue = GenericMock()
        issue.url = URL("http://www.example.org/users")
        issue.issueName = "SQL Injection"

        callbacks.getScanIssues.return_value = [issue]

        ic.run()
        self.assertEquals(ic.reportIssue.call_count, 1)

        ic.run()
        self.assertEquals(
            ic.reportIssue.call_count, 1,
            "Should still be one because it's the same issue and it has already been reported."
        )