Baptiste MOINE <contact@bmoine.fr>
@Creased_
~$> whois bmoine.fr
%%
%% Please contact Baptiste MOINE <contact@bmoine.fr> to obtain more information about me.
%%
contact:     Baptiste MOINE
country:     FR
e-mail:      contact@bmoine.fr
website:     https://www.bmoine.fr
website:     https://git.bmoine.fr
website:     https://twitter.com/Creased_
motto:       Learning is Endless
status:      ACTIVE
last-update: 1s ago
trouble:     Information: https://www.bmoine.fr
trouble:     Questions:  mailto:contact@bmoine.fr
trouble:     Spam: rm -rf / 2>/dev/nullRelative Path Overwrite XSS
1
Relative Path Overwrite XSS
3
Relative Path Overwrite XSS
4
scheme://user:password@host:port/path?query#fragmentscheme://host/path%2Fscheme://host/path/≠
Relative Path Overwrite XSS
5
scheme://host/path?query#fragmentotherpath?query#fragmentscheme://host/pathscheme://host/path?query#fragmentscheme://host/otherpath?query#fragmentRelative Path Overwrite XSS
6
Relative Path Overwrite XSS
7
Relative Path Overwrite XSS
8
Relative Path Overwrite XSS
9
| Client-side URL | Browser process | 
|---|---|
https://vps.bmoine.fr/upload/../ | 
                    Change URL to https://vps.bmoine.fr/
 | 
                
https://vps.bmoine.fr/upload/..%2F | 
                    Keep URL as-is ( https://vps.bmoine.fr/upload/..%2F) | 
                
| Server-side URL | HTTP server process | 
|---|---|
https://vps.bmoine.fr/ | 
                    Return default index from the location (https://vps.bmoine.fr/) | 
                
https://vps.bmoine.fr/upload/..%2F | 
                    Standardize location (remove dot-segments, but without redirection) then return default index from the location (https://vps.bmoine.fr/) | 
                
The browser keeps the dots-segments since they use urlentities, but the HTTP server decodes them...
Baptiste MOINE <contact@bmoine.fr>
@Creased_