Skip to content

Commit 0d1fe37

Browse files
author
HD Moore
committed
Ignore non-base64url characters during decode
1 parent 94241b2 commit 0d1fe37

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

lib/rex/text.rb

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1140,14 +1140,18 @@ def self.decode_base64(str)
11401140
# Base64 encoder (URL-safe RFC6920)
11411141
#
11421142
def self.encode_base64url(str, delim='')
1143-
encode_base64(str, delim).tr('+/', '-_').gsub('=', '')
1143+
encode_base64(str, delim).
1144+
tr('+/', '-_').
1145+
gsub('=', '')
11441146
end
11451147

11461148
#
1147-
# Base64 decoder (URL-safe RFC6920)
1149+
# Base64 decoder (URL-safe RFC6920, ignores invalid characters)
11481150
#
11491151
def self.decode_base64url(str)
1150-
decode_base64(str.tr('-_', '+/'))
1152+
decode_base64(
1153+
str.gsub(/[^a-zA-Z0-9_\-]/, '').
1154+
tr('-_', '+/'))
11511155
end
11521156

11531157
#

0 commit comments

Comments
 (0)