diff --git a/oauthproxy.go b/oauthproxy.go index 8c303df8..d5e71844 100644 --- a/oauthproxy.go +++ b/oauthproxy.go @@ -63,7 +63,7 @@ var ( // Used to check final redirects are not susceptible to open redirects. // Matches //, /\ and both of these with whitespace in between (eg / / or / \). - invalidRedirectRegex = regexp.MustCompile(`^/(\s|\v)?(/|\\)`) + invalidRedirectRegex = regexp.MustCompile(`[/\\](?:[\s\v]*|\.{1,2})[/\\]`) ) // OAuthProxy is the main authentication proxy diff --git a/oauthproxy_test.go b/oauthproxy_test.go index 0c244bae..1a0f0cc5 100644 --- a/oauthproxy_test.go +++ b/oauthproxy_test.go @@ -1,6 +1,7 @@ package main import ( + "bufio" "context" "crypto" "encoding/base64" @@ -11,6 +12,7 @@ import ( "net/http" "net/http/httptest" "net/url" + "os" "regexp" "strings" "testing" @@ -386,6 +388,41 @@ func TestIsValidRedirect(t *testing.T) { Redirect: "/\r\\evil.com", ExpectedResult: false, }, + { + Desc: "openRedirectTripleTab", + Redirect: "/\t\t/\t/evil.com", + ExpectedResult: false, + }, + { + Desc: "openRedirectTripleTab2", + Redirect: "/\t\t\\\t/evil.com", + ExpectedResult: false, + }, + { + Desc: "openRedirectQuadTab1", + Redirect: "/\t\t/\t\t\\evil.com", + ExpectedResult: false, + }, + { + Desc: "openRedirectQuadTab2", + Redirect: "/\t\t\\\t\t/evil.com", + ExpectedResult: false, + }, + { + Desc: "openRedirectPeriod1", + Redirect: "/./\\evil.com", + ExpectedResult: false, + }, + { + Desc: "openRedirectPeriod2", + Redirect: "/./../../\\evil.com", + ExpectedResult: false, + }, + { + Desc: "openRedirectDoubleTab", + Redirect: "/\t/\t\\evil.com", + ExpectedResult: false, + }, } for _, tc := range testCases { @@ -399,6 +436,50 @@ func TestIsValidRedirect(t *testing.T) { } } +func TestOpenRedirects(t *testing.T) { + opts := NewOptions() + opts.ClientID = "skdlfj" + opts.ClientSecret = "fgkdsgj" + opts.Cookie.Secret = "ljgiogbj" + // Should match domains that are exactly foo.bar and any subdomain of bar.foo + opts.WhitelistDomains = []string{ + "foo.bar", + ".bar.foo", + "port.bar:8080", + ".sub.port.bar:8080", + "anyport.bar:*", + ".sub.anyport.bar:*", + "www.whitelisteddomain.tld", + } + opts.Validate() + + proxy := NewOAuthProxy(opts, func(string) bool { return true }) + + file, err := os.Open("./test/openredirects.txt") + if err != nil { + t.Fatal(err) + } + defer file.Close() + + scanner := bufio.NewScanner(file) + for scanner.Scan() { + rd := scanner.Text() + t.Run(rd, func(t *testing.T) { + rdUnescaped, err := url.QueryUnescape(rd) + if err != nil { + t.Fatal(err) + } + if proxy.IsValidRedirect(rdUnescaped) { + t.Errorf("Expected %q to not be valid (unescaped: %q)", rd, rdUnescaped) + } + }) + } + + if err := scanner.Err(); err != nil { + t.Fatal(err) + } +} + type TestProvider struct { *providers.ProviderData EmailAddress string diff --git a/test/openredirects.txt b/test/openredirects.txt new file mode 100644 index 00000000..e68743e7 --- /dev/null +++ b/test/openredirects.txt @@ -0,0 +1,559 @@ + +";alert(0);// +%19Jav%09asc%09ript:https%20://www.whitelisteddomain.tld/%250Aconfirm%25281%2529 +%68%74%74%70%3a%2f%2f%67%6f%6f%67%6c%65%2e%63%6f%6d +.localdomain.pw +/%09/example.com +/%09/example.com@google.com +/%09/google.com +/%09/javascript:alert(1) +/%09/javascript:alert(1); +/%09/localdomain.pw +/%09/www.whitelisteddomain.tld@google.com +/%09/www.whitelisteddomain.tld@localdomain.pw +/%2f%2f%2fbing.com%2f%3fwww.omise.co +/%2f%2fexample.com +/%2f%2fgoogle.com +/%2f%2flocaldomain.pw +/%2f%5c%2f%67%6f%6f%67%6c%65%2e%63%6f%6d/ +/%5cexample.com +/%5cexample.com@google.com +/%5cgoogle.com +/%5cjavascript:alert(1) +/%5cjavascript:alert(1); +/%5clocaldomain.pw +/%5cwww.whitelisteddomain.tld@google.com +/%5cwww.whitelisteddomain.tld@localdomain.pw +/%68%74%74%70%3a%2f%2f%67%6f%6f%67%6c%65%2e%63%6f%6d +//%09/example.com +//%09/example.com@google.com +//%09/google.com +//%09/localdomain.pw +//%09/www.whitelisteddomain.tld@google.com +//%09/www.whitelisteddomain.tld@localdomain.pw +//%2fxgoogle.com +//%5cexample.com +//%5cexample.com@google.com +//%5cgoogle.com +//%5cjavascript:alert(1) +//%5cjavascript:alert(1); +//%5clocaldomain.pw +//%5cwww.whitelisteddomain.tld@google.com +//%5cwww.whitelisteddomain.tld@localdomain.pw +///%09/example.com +///%09/example.com@google.com +///%09/google.com +///%09/localdomain.pw +///%09/www.whitelisteddomain.tld@google.com +///%09/www.whitelisteddomain.tld@localdomain.pw +///%5cexample.com +///%5cexample.com@google.com +///%5cgoogle.com +///%5clocaldomain.pw +///%5cwww.whitelisteddomain.tld@google.com +///%5cwww.whitelisteddomain.tld@localdomain.pw +////%09/example.com +////%09/example.com@google.com +////%09/google.com +////%09/localdomain.pw +////%09/www.whitelisteddomain.tld@google.com +////%09/www.whitelisteddomain.tld@localdomain.pw +////%5cexample.com +////%5cexample.com@google.com +////%5cgoogle.com +////%5clocaldomain.pw +////%5cwww.whitelisteddomain.tld@google.com +////%5cwww.whitelisteddomain.tld@localdomain.pw +/////example.com +/////example.com/ +/////google.com/ +/////localdomain.pw +/////localdomain.pw/ +////\;@example.com +////example.com/ +////example.com/%2e%2e +////example.com/%2e%2e%2f +////example.com/%2f%2e%2e +////example.com/%2f.. +////example.com// +////example.com@google.com/ +////example.com@google.com/%2e%2e +////example.com@google.com/%2e%2e%2f +////example.com@google.com/%2f%2e%2e +////example.com@google.com/%2f.. +////example.com@google.com// +////google.com/ +////google.com/%2e%2e +////google.com/%2e%2e%2f +////google.com/%2f%2e%2e +////google.com/%2f.. +////google.com// +////localdomain.pw/ +////localdomain.pw/%2e%2e +////localdomain.pw/%2e%2e%2f +////localdomain.pw/%2f%2e%2e +////localdomain.pw/%2f.. +////localdomain.pw// +////www.google.com/%2e%2e +////www.google.com/%2e%2e%2f +////www.google.com/%2f%2e%2e +////www.whitelisteddomain.tld@google.com/ +////www.whitelisteddomain.tld@google.com/%2f.. +////www.whitelisteddomain.tld@google.com// +////www.whitelisteddomain.tld@localdomain.pw/ +////www.whitelisteddomain.tld@localdomain.pw/%2e%2e +////www.whitelisteddomain.tld@localdomain.pw/%2e%2e%2f +////www.whitelisteddomain.tld@localdomain.pw/%2f%2e%2e +////www.whitelisteddomain.tld@localdomain.pw/%2f.. +////www.whitelisteddomain.tld@localdomain.pw// +////www.whitelisteddomain.tld@www.google.com/%2e%2e +////www.whitelisteddomain.tld@www.google.com/%2e%2e%2f +////www.whitelisteddomain.tld@www.google.com/%2f%2e%2e +///\;@example.com +///\;@google.com +///\;@localdomain.pw +///example.com +///example.com/ +///example.com/%2e%2e +///example.com/%2e%2e%2f +///example.com/%2f%2e%2e +///example.com/%2f.. +///example.com// +///example.com@google.com/ +///example.com@google.com/%2e%2e +///example.com@google.com/%2e%2e%2f +///example.com@google.com/%2f%2e%2e +///example.com@google.com/%2f.. +///example.com@google.com// +///google.com +///google.com/ +///google.com/%2e%2e +///google.com/%2e%2e%2f +///google.com/%2f%2e%2e +///google.com/%2f.. +///google.com// +///localdomain.pw +///localdomain.pw/ +///localdomain.pw/%2e%2e +///localdomain.pw/%2e%2e%2f +///localdomain.pw/%2f%2e%2e +///localdomain.pw/%2f.. +///localdomain.pw// +///www.google.com/%2e%2e +///www.google.com/%2e%2e%2f +///www.google.com/%2f%2e%2e +///www.whitelisteddomain.tld@google.com/ +///www.whitelisteddomain.tld@google.com/%2f.. +///www.whitelisteddomain.tld@google.com// +///www.whitelisteddomain.tld@localdomain.pw/ +///www.whitelisteddomain.tld@localdomain.pw/%2e%2e +///www.whitelisteddomain.tld@localdomain.pw/%2e%2e%2f +///www.whitelisteddomain.tld@localdomain.pw/%2f%2e%2e +///www.whitelisteddomain.tld@localdomain.pw/%2f.. +///www.whitelisteddomain.tld@localdomain.pw// +///www.whitelisteddomain.tld@www.google.com/%2e%2e +///www.whitelisteddomain.tld@www.google.com/%2e%2e%2f +///www.whitelisteddomain.tld@www.google.com/%2f%2e%2e +//3H6k7lIAiqjfNeN@example.com+@google.com/ +//3H6k7lIAiqjfNeN@example.com@google.com/ +//3H6k7lIAiqjfNeN@www.whitelisteddomain.tld+@localdomain.pw/ +//3H6k7lIAiqjfNeN@www.whitelisteddomain.tld@localdomain.pw/ +//;@google.com +//;@localdomain.pw +//XY>.7d8T\205pZM@example.com+@google.com/ +//XY>.7d8T\205pZM@example.com@google.com/ +//XY>.7d8T\205pZM@www.whitelisteddomain.tld+@localdomain.pw/ +//XY>.7d8T\205pZM@www.whitelisteddomain.tld@localdomain.pw/ +//example.com +//example.com+&@google.com#+@example.com/ +//example.com/ +//example.com/%2e%2e +//example.com/%2e%2e%2f +//example.com/%2f%2e%2e +//example.com/%2f.. +//example.com// +//example.com@google.com/ +//example.com@google.com/%2e%2e%2f +//example.com@google.com/%2f%2e%2e +//example.com@google.com/%2f.. +//example.com@google.com// +//example.com@https:///google.com/%2e%2e +//google%00.com +//google%E3%80%82com +//google.com +//google.com/ +//google.com/%2e%2e%2f +//google.com/%2f%2e%2e +//google.com/%2f.. +//google.com// +//google.com:80#@example.com/ +//google.com:80?@example.com/ +//google.com\@example.com +//google.com\@www.whitelisteddomain.tld +//google.com\texample.com/ +//https:///example.com/%2e%2e +//https:///google.com/%2e%2e +//https:///localdomain.pw/%2e%2e +//https:///www.google.com/%2e%2e +//https://example.com/%2e%2e%2f +//https://example.com// +//https://example.com@google.com/%2e%2e%2f +//https://example.com@google.com// +//https://google.com/%2e%2e%2f +//https://google.com// +//https://localdomain.pw/%2e%2e%2f +//https://localdomain.pw// +//https://www.google.com/%2e%2e%2f +//https://www.whitelisteddomain.tld@google.com// +//https://www.whitelisteddomain.tld@localdomain.pw/%2e%2e%2f +//https://www.whitelisteddomain.tld@localdomain.pw// +//https://www.whitelisteddomain.tld@www.google.com/%2e%2e%2f +//javascript:alert(1) +//javascript:alert(1); +//localdomain%00.pw +//localdomain%E3%80%82pw +//localdomain.pw +//localdomain.pw/ +//localdomain.pw/%2e%2e%2f +//localdomain.pw/%2f%2e%2e +//localdomain.pw/%2f.. +//localdomain.pw// +//localdomain.pw:80#@www.whitelisteddomain.tld/ +//localdomain.pw:80?@www.whitelisteddomain.tld/ +//localdomain.pw\@www.whitelisteddomain.tld +//localdomain.pw\twww.whitelisteddomain.tld/ +//www.google.com/%2e%2e%2f +//www.google.com/%2f%2e%2e +//www.whitelisteddomain.tld+&@localdomain.pw#+@www.whitelisteddomain.tld/ +//www.whitelisteddomain.tld@google.com/ +//www.whitelisteddomain.tld@google.com/%2f.. +//www.whitelisteddomain.tld@google.com// +//www.whitelisteddomain.tld@https:///localdomain.pw/%2e%2e +//www.whitelisteddomain.tld@https:///www.google.com/%2e%2e +//www.whitelisteddomain.tld@localdomain.pw/ +//www.whitelisteddomain.tld@localdomain.pw/%2e%2e%2f +//www.whitelisteddomain.tld@localdomain.pw/%2f%2e%2e +//www.whitelisteddomain.tld@localdomain.pw/%2f.. +//www.whitelisteddomain.tld@localdomain.pw// +//www.whitelisteddomain.tld@www.google.com/%2e%2e%2f +//www.whitelisteddomain.tld@www.google.com/%2f%2e%2e +/<>//example.com +/?url=//example.com&next=//example.com&redirect=//example.com&redir=//example.com&rurl=//example.com&redirect_uri=//example.com +/?url=/\/example.com&next=/\/example.com&redirect=/\/example.com&redirect_uri=/\/example.com +/?url=Https://example.com&next=Https://example.com&redirect=Https://example.com&redir=Https://example.com&rurl=Https://example.com&redirect_uri=Https://example.com +/ReceiveAutoRedirect/false?desiredLocationUrl=http://xssposed.org +/\/\/example.com/ +/\/example.com/ +/\/google.com/ +/\/localdomain.pw/ +/example.com/%2f%2e%2e +/google.com/%2f%2e%2e +/http://%67%6f%6f%67%6c%65%2e%63%6f%6d +/http://example.com +/http://google.com +/http://localdomain.pw +/https:/%5cexample.com/ +/https:/%5cgoogle.com/ +/https:/%5clocaldomain.pw/ +/https://%09/example.com +/https://%5cexample.com +/https://%5cexample.com@google.com +/https://%5cgoogle.com +/https://%5clocaldomain.pw +/https://%5cwww.whitelisteddomain.tld@google.com +/https://%5cwww.whitelisteddomain.tld@localdomain.pw +/https:///example.com/%2e%2e +/https:///example.com/%2f%2e%2e +/https:///example.com@google.com/%2f%2e%2e +/https:///google.com/%2f%2e%2e +/https:///localdomain.pw/%2f%2e%2e +/https:///www.google.com/%2f%2e%2e +/https:///www.whitelisteddomain.tld@localdomain.pw/%2f%2e%2e +/https:///www.whitelisteddomain.tld@www.google.com/%2f%2e%2e +/https://example.com +/https://example.com/ +/https://example.com/%2e%2e +/https://example.com/%2e%2e%2f +/https://example.com/%2f%2e%2e +/https://example.com/%2f.. +/https://example.com// +/https://example.com@google.com/ +/https://example.com@google.com/%2e%2e +/https://example.com@google.com/%2f%2e%2e +/https://example.com@google.com/%2f.. +/https://google.com/ +/https://google.com/%2e%2e +/https://google.com/%2f%2e%2e +/https://google.com/%2f.. +/https://localdomain.pw/ +/https://localdomain.pw/%2e%2e +/https://localdomain.pw/%2f%2e%2e +/https://localdomain.pw/%2f.. +/https://www.google.com/%2e%2e +/https://www.google.com/%2f%2e%2e +/https://www.whitelisteddomain.tld@google.com/ +/https://www.whitelisteddomain.tld@google.com/%2f.. +/https://www.whitelisteddomain.tld@localdomain.pw/ +/https://www.whitelisteddomain.tld@localdomain.pw/%2e%2e +/https://www.whitelisteddomain.tld@localdomain.pw/%2f%2e%2e +/https://www.whitelisteddomain.tld@localdomain.pw/%2f.. +/https://www.whitelisteddomain.tld@www.google.com/%2e%2e +/https://www.whitelisteddomain.tld@www.google.com/%2f%2e%2e +/localdomain.pw/%2f%2e%2e +/redirect?url=//example.com&next=//example.com&redirect=//example.com&redir=//example.com&rurl=//example.com&redirect_uri=//example.com +/redirect?url=/\/example.com&next=/\/example.com&redirect=/\/example.com&redir=/\/example.com&rurl=/\/example.com&redirect_uri=/\/example.com +/redirect?url=Https://example.com&next=Https://example.com&redirect=Https://example.com&redir=Https://example.com&rurl=Https://example.com&redirect_uri=Https://example.com +/x:1/:///%01javascript:alert(document.cookie)/ +<>//google.com +<>//localdomain.pw +<>javascript:alert(1); +@google.com +@localdomain.pw +Javas%26%2399;ript:alert(1) +\/\/google.com/ +\/\/localdomain.pw/ +\152\141\166\141\163\143\162\151\160\164\072alert(1) +\j\av\a\s\cr\i\pt\:\a\l\ert\(1\) +\u006A\u0061\u0076\u0061\u0073\u0063\u0072\u0069\u0070\u0074\u003aalert(1) +\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3aalert(1) +data:text/html;base64,PHNjcmlwdD5hbGVydCgiWFNTIik8L3NjcmlwdD4= +data:www.whitelisteddomain.tld;text/html;charset=UTF-8, +http://%67%6f%6f%67%6c%65%2e%63%6f%6d +http://.localdomain.pw +http://00330.00072.0000326.00000316 +http://00330.0x3a.54990 +http://00330.3856078 +http://0330.072.0326.0316 +http://0xd8.072.54990 +http://0xd8.0x3a.0xd6.0xce +http://0xd8.3856078 +http://0xd83ad6ce +http://3627734734 +http://3H6k7lIAiqjfNeN@00330.00072.0000326.00000316 +http://3H6k7lIAiqjfNeN@00330.0x3a.54990 +http://3H6k7lIAiqjfNeN@00330.3856078 +http://3H6k7lIAiqjfNeN@0330.072.0326.0316 +http://3H6k7lIAiqjfNeN@0xd8.072.54990 +http://3H6k7lIAiqjfNeN@0xd8.0x3a.0xd6.0xce +http://3H6k7lIAiqjfNeN@0xd8.3856078 +http://3H6k7lIAiqjfNeN@0xd83ad6ce +http://3H6k7lIAiqjfNeN@3627734734 +http://3H6k7lIAiqjfNeN@472.314.470.462 +http://3H6k7lIAiqjfNeN@[::216.58.214.206] +http://3H6k7lIAiqjfNeN@[::ffff:216.58.214.206] +http://3H6k7lIAiqjfNeN@example.com+@google.com/ +http://3H6k7lIAiqjfNeN@example.com@google.com/ +http://3H6k7lIAiqjfNeN@www.whitelisteddomain.tld+@localdomain.pw/ +http://3H6k7lIAiqjfNeN@www.whitelisteddomain.tld@localdomain.pw/ +http://472.314.470.462 +http://;@google.com +http://;@localdomain.pw +http://XY>.7d8T\205pZM@00330.00072.0000326.00000316 +http://XY>.7d8T\205pZM@00330.0x3a.54990 +http://XY>.7d8T\205pZM@00330.3856078 +http://XY>.7d8T\205pZM@0330.072.0326.0316 +http://XY>.7d8T\205pZM@0xd8.072.54990 +http://XY>.7d8T\205pZM@0xd8.0x3a.0xd6.0xce +http://XY>.7d8T\205pZM@0xd8.3856078 +http://XY>.7d8T\205pZM@0xd83ad6ce +http://XY>.7d8T\205pZM@3627734734 +http://XY>.7d8T\205pZM@472.314.470.462 +http://XY>.7d8T\205pZM@[::216.58.214.206] +http://XY>.7d8T\205pZM@[::ffff:216.58.214.206] +http://XY>.7d8T\205pZM@example.com+@google.com/ +http://XY>.7d8T\205pZM@example.com@google.com/ +http://XY>.7d8T\205pZM@www.whitelisteddomain.tld+@localdomain.pw/ +http://XY>.7d8T\205pZM@www.whitelisteddomain.tld@localdomain.pw/ +http://[::216.58.214.206] +http://[::ffff:216.58.214.206] +http://example.com%2egoogle.com/ +http://example.com+&@google.com#+@example.com/ +http://example.com:80%40google.com/ +http://example.com@00330.00072.0000326.00000316 +http://example.com@00330.0x3a.54990 +http://example.com@00330.3856078 +http://example.com@0330.072.0326.0316 +http://example.com@0xd8.072.54990 +http://example.com@0xd8.0x3a.0xd6.0xce +http://example.com@0xd8.3856078 +http://example.com@0xd83ad6ce +http://example.com@3627734734 +http://example.com@472.314.470.462 +http://example.com@[::216.58.214.206] +http://example.com@[::ffff:216.58.214.206] +http://google.com%23.example.com/ +http://google.com%2f%2f.example.com/ +http://google.com%3F.example.com/ +http://google.com%5c%5c.example.com/ +http://google.com:80#@example.com/ +http://google.com:80#@www.whitelisteddomain.tld/ +http://google.com:80?@example.com/ +http://google.com:80?@www.whitelisteddomain.tld/ +http://google.com\texample.com/ +http://localdomain.pw%23.www.whitelisteddomain.tld/ +http://localdomain.pw%2f%2f.www.whitelisteddomain.tld/ +http://localdomain.pw%3F.www.whitelisteddomain.tld/ +http://localdomain.pw%5c%5c.www.whitelisteddomain.tld/ +http://localdomain.pw:80#@www.whitelisteddomain.tld/ +http://localdomain.pw:80?@www.whitelisteddomain.tld/ +http://localdomain.pw\twww.whitelisteddomain.tld/ +http://www.localdomain.pw\.www.whitelisteddomain.tld +http://www.whitelisteddomain.tld%2elocaldomain.pw/ +http://www.whitelisteddomain.tld+&@localdomain.pw#+@www.whitelisteddomain.tld/ +http://www.whitelisteddomain.tld:80%40localdomain.pw/ +http://www.whitelisteddomain.tld@00330.00072.0000326.00000316 +http://www.whitelisteddomain.tld@00330.0x3a.54990 +http://www.whitelisteddomain.tld@00330.3856078 +http://www.whitelisteddomain.tld@0330.072.0326.0316 +http://www.whitelisteddomain.tld@0xd8.072.54990 +http://www.whitelisteddomain.tld@0xd8.0x3a.0xd6.0xce +http://www.whitelisteddomain.tld@0xd8.3856078 +http://www.whitelisteddomain.tld@0xd83ad6ce +http://www.whitelisteddomain.tld@3627734734 +http://www.whitelisteddomain.tld@472.314.470.462 +http://www.whitelisteddomain.tld@[::216.58.214.206] +http://www.whitelisteddomain.tld@[::ffff:216.58.214.206] +http:00330.00072.0000326.00000316 +http:00330.0x3a.54990 +http:00330.3856078 +http:0330.072.0326.0316 +http:0xd8.072.54990 +http:0xd8.0x3a.0xd6.0xce +http:0xd8.3856078 +http:0xd83ad6ce +http:3627734734 +http:3H6k7lIAiqjfNeN@00330.00072.0000326.00000316 +http:3H6k7lIAiqjfNeN@00330.0x3a.54990 +http:3H6k7lIAiqjfNeN@00330.3856078 +http:3H6k7lIAiqjfNeN@0330.072.0326.0316 +http:3H6k7lIAiqjfNeN@0xd8.072.54990 +http:3H6k7lIAiqjfNeN@0xd8.0x3a.0xd6.0xce +http:3H6k7lIAiqjfNeN@0xd8.3856078 +http:3H6k7lIAiqjfNeN@0xd83ad6ce +http:3H6k7lIAiqjfNeN@3627734734 +http:3H6k7lIAiqjfNeN@472.314.470.462 +http:3H6k7lIAiqjfNeN@[::216.58.214.206] +http:3H6k7lIAiqjfNeN@[::ffff:216.58.214.206] +http:472.314.470.462 +http:XY>.7d8T\205pZM@00330.00072.0000326.00000316 +http:XY>.7d8T\205pZM@00330.0x3a.54990 +http:XY>.7d8T\205pZM@00330.3856078 +http:XY>.7d8T\205pZM@0330.072.0326.0316 +http:XY>.7d8T\205pZM@0xd8.072.54990 +http:XY>.7d8T\205pZM@0xd8.0x3a.0xd6.0xce +http:XY>.7d8T\205pZM@0xd8.3856078 +http:XY>.7d8T\205pZM@0xd83ad6ce +http:XY>.7d8T\205pZM@3627734734 +http:XY>.7d8T\205pZM@472.314.470.462 +http:XY>.7d8T\205pZM@[::216.58.214.206] +http:XY>.7d8T\205pZM@[::ffff:216.58.214.206] +http:[::216.58.214.206] +http:[::ffff:216.58.214.206] +http:example.com@00330.00072.0000326.00000316 +http:example.com@00330.0x3a.54990 +http:example.com@00330.3856078 +http:example.com@0330.072.0326.0316 +http:example.com@0xd8.072.54990 +http:example.com@0xd8.0x3a.0xd6.0xce +http:example.com@0xd8.3856078 +http:example.com@0xd83ad6ce +http:example.com@3627734734 +http:example.com@472.314.470.462 +http:example.com@[::216.58.214.206] +http:example.com@[::ffff:216.58.214.206] +http:www.whitelisteddomain.tld@00330.00072.0000326.00000316 +http:www.whitelisteddomain.tld@00330.0x3a.54990 +http:www.whitelisteddomain.tld@00330.3856078 +http:www.whitelisteddomain.tld@0330.072.0326.0316 +http:www.whitelisteddomain.tld@0xd8.072.54990 +http:www.whitelisteddomain.tld@0xd8.0x3a.0xd6.0xce +http:www.whitelisteddomain.tld@0xd8.3856078 +http:www.whitelisteddomain.tld@0xd83ad6ce +http:www.whitelisteddomain.tld@3627734734 +http:www.whitelisteddomain.tld@472.314.470.462 +http:www.whitelisteddomain.tld@[::216.58.214.206] +http:www.whitelisteddomain.tld@[::ffff:216.58.214.206] +https://%09/example.com@google.com +https://%09/google.com +https://%09/localdomain.pw +https://%09/www.whitelisteddomain.tld@google.com +https://%09/www.whitelisteddomain.tld@localdomain.pw +https://%5cexample.com@google.com +https://%5cgoogle.com +https://%5clocaldomain.pw +https://%5cwww.whitelisteddomain.tld@google.com +https://%5cwww.whitelisteddomain.tld@localdomain.pw +https:///example.com@google.com/%2e%2e +https:///example.com@google.com/%2f%2e%2e +https:///google.com/%2e%2e +https:///google.com/%2f%2e%2e +https:///localdomain.pw/%2e%2e +https:///localdomain.pw/%2f%2e%2e +https:///www.google.com/%2e%2e +https:///www.google.com/%2f%2e%2e +https:///www.whitelisteddomain.tld@localdomain.pw/%2e%2e +https:///www.whitelisteddomain.tld@localdomain.pw/%2f%2e%2e +https:///www.whitelisteddomain.tld@www.google.com/%2e%2e +https:///www.whitelisteddomain.tld@www.google.com/%2f%2e%2e +https://:@google.com\@example.com +https://:@google.com\@www.whitelisteddomain.tld +https://:@localdomain.pw\@www.whitelisteddomain.tld +https://example.com/https://google.com/ +https://example.com@google.com +https://example.com@google.com/ +https://example.com@google.com/%2e%2e%2f +https://example.com@google.com/%2f%2e%2e +https://example.com@google.com/%2f.. +https://example.com@google.com// +https://google.com +https://google.com/ +https://google.com/%2e%2e%2f +https://google.com/%2f%2e%2e +https://google.com/%2f.. +https://google.com// +https://localdomain.pw +https://localdomain.pw/ +https://localdomain.pw/%2e%2e%2f +https://localdomain.pw/%2f%2e%2e +https://localdomain.pw/%2f.. +https://localdomain.pw// +https://www.google.com/%2e%2e%2f +https://www.google.com/%2f%2e%2e +https://www.whitelisteddomain.tld@google.com +https://www.whitelisteddomain.tld@google.com/ +https://www.whitelisteddomain.tld@google.com/%2f.. +https://www.whitelisteddomain.tld@google.com// +https://www.whitelisteddomain.tld@localdomain.pw +https://www.whitelisteddomain.tld@localdomain.pw/ +https://www.whitelisteddomain.tld@localdomain.pw/%2e%2e%2f +https://www.whitelisteddomain.tld@localdomain.pw/%2f%2e%2e +https://www.whitelisteddomain.tld@localdomain.pw/%2f.. +https://www.whitelisteddomain.tld@localdomain.pw// +https://www.whitelisteddomain.tld@www.google.com/%2e%2e%2f +https://www.whitelisteddomain.tld@www.google.com/%2f%2e%2e +https:google.com +https:localdomain.pw +jaVAscript://www.whitelisteddomain.tld//%0d%0aalert(1);// +ja\nva\tscript\r:alert(1) +java%09script:alert(1) +java%0ascript:alert(1) +java%0d%0ascript%0d%0a:alert(0) +java%0dscript:alert(1) +javascripT://anything%0D%0A%0D%0Awindow.alert(document.cookie) +javascript://%0aalert(1) +javascript://example.com?%a0alert%281%29 +javascript://https://example.com/?z=%0Aalert(1) +javascript://https://www.whitelisteddomain.tld/?z=%0Aalert(1) +javascript://www.whitelisteddomain.tld?%a0alert%281%29 +javascript:alert(1) +javascript:alert(1); +〱google.com +〱localdomain.pw +〵google.com +〵localdomain.pw +ゝgoogle.com +ゝlocaldomain.pw +ーgoogle.com +ーlocaldomain.pw +ーgoogle.com +ーlocaldomain.pw