Skip to content

Commit

Permalink
Merge e050d11 into d07021a
Browse files Browse the repository at this point in the history
  • Loading branch information
Ideneal committed Oct 9, 2019
2 parents d07021a + e050d11 commit bd4290d
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 0 deletions.
2 changes: 2 additions & 0 deletions pastepwn/analyzers/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
from .adobekeyanalyzer import AdobeKeyAnalyzer
from .facebookaccesstokenanalyzer import FacebookAccessTokenAnalyzer
from .base64analyzer import Base64Analyzer
from .stripeapikeyanalyzer import StripeApiKeyAnalyzer
from .awssecretkeyanalyzer import AWSSecretKeyAnalyzer
from .awsaccesskeyanalyzer import AWSAccessKeyAnalyzer
from .googleoauthkeyanalyzer import GoogleOAuthKeyAnalyzer
Expand Down Expand Up @@ -63,6 +64,7 @@
'EmailPasswordPairAnalyzer',
'FacebookAccessTokenAnalyzer',
'Base64Analyzer',
'StripeApiKeyAnalyzer',
'AWSSecretKeyAnalyzer',
'AWSAccessKeyAnalyzer',
'GoogleOAuthKeyAnalyzer',
Expand Down
8 changes: 8 additions & 0 deletions pastepwn/analyzers/stripeapikeyanalyzer.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
from .regexanalyzer import RegexAnalyzer


class StripeApiKeyAnalyzer(RegexAnalyzer):

def __init__(self, actions):
regex = r'(?:r|s)k_(live|test)_[0-9a-zA-Z]{24}'
super().__init__(actions, regex)
58 changes: 58 additions & 0 deletions pastepwn/analyzers/tests/stripeapikeyanalyzer_test.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# -*- coding: utf-8 -*-
import unittest
from unittest import mock

from pastepwn.analyzers.stripeapikeyanalyzer import StripeApiKeyAnalyzer


class TestStripeApiKeyAnalyzer(unittest.TestCase):

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

def test_match_positive(self):
"""Test if positives are recognized"""
# steam key dump
self.paste.body = "sk_test_4fsrdffsdf345345dfgfg34i"
self.assertTrue(self.analyzer.match(self.paste))

# steam key dump
self.paste.body = "rk_test_4fsrdffsdf345345dfgfg34i"
self.assertTrue(self.analyzer.match(self.paste))

# steam key dump
self.paste.body = "sk_live_4fsrdffsdf345345dfgfg34i"
self.assertTrue(self.analyzer.match(self.paste))

# steam key dump
self.paste.body = "rk_live_4fsrdffsdf345345dfgfg34i"
self.assertTrue(self.analyzer.match(self.paste))

# steam key dump
self.paste.body = "sk_test_YUTGF76uyh876Tyg87T786Tu"
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))

# Invalid length
self.paste.body = "sk_test_YUTGF76uyh876"
self.assertFalse(self.analyzer.match(self.paste))

# Invalid first letter
self.paste.body = "pk_test_YUTGF76uyh876Tyg87T786Tu"
self.assertFalse(self.analyzer.match(self.paste))

# Invalid state
self.paste.body = "sk_staging_YUTGF76uyh876Tyg87T786Tu"
self.assertFalse(self.analyzer.match(self.paste))


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

0 comments on commit bd4290d

Please sign in to comment.