diff --git a/badsecrets/modules/rails_secretkeybase.py b/badsecrets/modules/rails_secretkeybase.py index 044be81..b135f05 100644 --- a/badsecrets/modules/rails_secretkeybase.py +++ b/badsecrets/modules/rails_secretkeybase.py @@ -36,7 +36,7 @@ def rails(self, rails_cookie, secret_key_base): encrypted_data = base64.b64decode(data).decode() iv = encrypted_data.split("--")[1] data = encrypted_data.split("--")[0] - except (UnicodeDecodeError, IndexError): + except (UnicodeDecodeError, IndexError, binascii.Error): return if len(base64.b64decode(iv)) == 16: diff --git a/badsecrets/resources/aspnet_machinekeys.txt b/badsecrets/resources/aspnet_machinekeys.txt index 2a95836..fdf405c 100644 --- a/badsecrets/resources/aspnet_machinekeys.txt +++ b/badsecrets/resources/aspnet_machinekeys.txt @@ -2779,7 +2779,6 @@ C3DD5E21134BDCAF7D951A2ED8E45F7E7395A8CEBAA6A43A8D8528A85B9AB00D,ADCBCFC864936D0 C3E566B36D7D737C3642E6AEE1FBF7E40F002E08,D993D168BAA3518CB12F32BBBF93D259A2D3E91EA0DE65A8 C3ECDA658438CB56E1B2214D481AD1357E57469F,E23294FEFD59AF24CA7BE43F355F38E94D1FB48B687A6D3C C3F4C2EA177D400D5079E51F9CF1C9F8BBC4BD1E8ACC3C08EBB55D3FEB9D2076AFB83A4E23856B34CF4A10F98FADB0625147D3B5EC5C425995DECFFD0D10B0B7,A2C88FF5B85D9A4073DF6E63BFEDC8122D26BEFFD1436284 -***REMOVED*** C404DBC640257AA6DD1632CC42279467947E0539A484964B67AF2706E0C1E50A7D0075698C692D5E27A5337A223A1D7EE78678B803918D5F8C1F0A623E2FFC07,C3C74BBF830D1FD79576F70BEE59D12D9A99CC7AB564E3BD851C27A2563A72C1 C40E61DCB9CF02AF9B87ECF85E4F098A7A92858E34654EC633A04992E4D9222AA9EE7E5B13A1A67F36336404E93A664BA05E797543C1163BF5088618507E6853,E62236F1C28D325263320588532A716642411E7417752D4D C41E5BEB7FD938AC1368A9EE0A97BAD2F6DBC4AB563FB9F89ED37C4D0CD5B7918FA822AD2A181A5B4FB7CF3826C56F043A93B4B08816E037485F61070AB2AD6A,968DB8BE829EC55028B809D75D3DF3BAB406B2D8EF7FF712D7F36B9ABCD99016 diff --git a/tests/rails_secretkeybase_test.py b/tests/rails_secretkeybase_test.py index 155e836..77b710f 100644 --- a/tests/rails_secretkeybase_test.py +++ b/tests/rails_secretkeybase_test.py @@ -70,9 +70,17 @@ def test_rails_malformed(): assert not found_key -def test_rails_unicode_error(): +def test_rails_error_unicode(): x = Rails_SecretKeyBase() found_key = x.check_secret( "dUEvRldLekFNcklGZ3ZSbU1XaHJ0ZGxsLzhYTHlNTW43T3BVN05kZXE3WUhQOVVKbVA3Rm5WaSs5eG5QQ1VIRVBzeDFNTnNpZ0xCM1FKbzFZTEJISzhaNzFmVGYzME0waDFURVpCYm5TQlJFRmRFclYzNUZhR3VuN29PMmlkVHBrRi8wb3AwZWgvWmxObkFOYnpkeHR1YWpWZ3lnN0Y4ZW9xSk9LNVlQd0U4MmFsbWtLZUI5VzkzRkM4YXBFWXBWeS9NMTBNZ1RadmU5ZlFnMWVZaXpaZz09--7efe7919a5210cfd1ac4c6228e3ff82c0600d841" ) assert not found_key + + +def test_rails_error_binascii(): + x = Rails_SecretKeyBase() + found_key = x.check_secret( + "dUEvRldLekFNcklGZ3ZSbU1XaHJ0ZGxsLzhYTHlNTW43T3BVN05kZXE3WUhQOVVKbVA3Rm5WaSs5eG5QQ1VIRVBzeDFNTnNpZ0xCM1FKbzFZTEJISzhaNzFmVGYzME0waDFURVpCYm5TQlJFRmRFclYzNUZhR3VuN29PMmlkVHBrRi8wb3AwZWgvWmxObkFOYnpkeHR1YWpWZ3lnN0Y4ZW9xSk9LNVlQd0U4MmFsbWtLZUI5VzkzRkM4YXBFWXBWeS9NMTBNZ1RadmU5ZlFnMWV%20XpaZz09--7efe7919a5210cfd1ac4c6228e3ff82c0600d841" + ) + assert not found_key