Skip to content

Commit

Permalink
Merge 03c2b76 into bb51e3e
Browse files Browse the repository at this point in the history
  • Loading branch information
Ideneal committed Oct 8, 2019
2 parents bb51e3e + 03c2b76 commit 4d0be12
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 1 deletion.
4 changes: 3 additions & 1 deletion 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

__all__ = (
'AlwaysTrueAnalyzer',
Expand Down Expand Up @@ -57,5 +58,6 @@
'PrivateKeyAnalyzer',
'EmailPasswordPairAnalyzer',
'FacebookAccessTokenAnalyzer',
'Base64Analyzer'
'Base64Analyzer',
'StripeApiKeyAnalyzer'
)
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 4d0be12

Please sign in to comment.