Skip to content

Commit

Permalink
Merge d3d6fad into 6c87802
Browse files Browse the repository at this point in the history
  • Loading branch information
Ideneal committed Oct 8, 2019
2 parents 6c87802 + d3d6fad commit f30f5a3
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 4 deletions.
6 changes: 2 additions & 4 deletions pastepwn/analyzers/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,7 @@
from .adobekeyanalyzer import AdobeKeyAnalyzer
from .facebookaccesstokenanalyzer import FacebookAccessTokenAnalyzer
from .base64analyzer import Base64Analyzer
from .googleoauthkeyanalyzer import GoogleOAuthKeyAnalyzer
from .slackwebhookanalyzer import SlackWebhookAnalyzer
from .mailchimpapikeyanalyzer import MailChimpApiKeyAnalyzer

__all__ = (
'AlwaysTrueAnalyzer',
Expand Down Expand Up @@ -60,6 +59,5 @@
'EmailPasswordPairAnalyzer',
'FacebookAccessTokenAnalyzer',
'Base64Analyzer',
'GoogleOAuthKeyAnalyzer',
'SlackWebhookAnalyzer'
'MailChimpApiKeyAnalyzer'
)
8 changes: 8 additions & 0 deletions pastepwn/analyzers/mailchimpapikeyanalyzer.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
from .regexanalyzer import RegexAnalyzer


class MailChimpApiKeyAnalyzer(RegexAnalyzer):

def __init__(self, actions):
regex = r"[0-9a-f]{32}-us[0-9]{12}"
super().__init__(actions, regex)
39 changes: 39 additions & 0 deletions pastepwn/analyzers/tests/mailchimpapikeyanalyzer_test.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import unittest
from unittest import mock

from pastepwn.analyzers.mailchimpapikeyanalyzer import MailChimpApiKeyAnalyzer


class TestMailChimpApiKeyAnalyzer(unittest.TestCase):

def setUp(self):
self.analyzer = MailChimpApiKeyAnalyzer(None)
self.paste = mock.Mock()

def test_match_positive(self):
"""Test if positives are recognized"""
self.paste.body = "87b6ac876aca87c687a6c87a6ca876c8-us000000000000"
self.assertTrue(self.analyzer.match(self.paste))
self.paste.body = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-us000000000000"
self.assertTrue(self.analyzer.match(self.paste))
self.paste.body = "12312312312312312312312312312312-us000000000000"
self.assertTrue(self.analyzer.match(self.paste))
self.paste.body = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-us345646456456"
self.assertTrue(self.analyzer.match(self.paste))

def test_match_negative(self):
"""Test if negatives are not recognized"""
self.paste.body = ""
self.assertFalse(self.analyzer.match(self.paste))
self.paste.body = None
self.assertFalse(self.analyzer.match(self.paste))
self.paste.body = "asdasdasdasdasdasdasdasdasdasdas-us000000000000"
self.assertFalse(self.analyzer.match(self.paste))
self.paste.body = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-it000000000000"
self.assertFalse(self.analyzer.match(self.paste))
self.paste.body = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-usasdasdasdasd"
self.assertFalse(self.analyzer.match(self.paste))


if __name__ == '__main__':
unittest.main()

0 comments on commit f30f5a3

Please sign in to comment.