Kodowanie url to system który zamienia niektóre znaki na znak procentu + znacznik szesnastkowy. Stosowany jest głównie po to, by przesyłane znaki specjalne były odpowiednio zinterpretowane przez serwer odbierający żądanie.
RCF3986 określa dwie grupy znaków – niezastrzeżone i zastrzeżone.
Znaki niezastrzeżone to:
Jeśli jesteś już zapisany - Kliknij "Zaloguj się" i podaj swojego maila - treść zostanie odblokowana:
Lista znaków z odpowiadającym im kodowaniem:
Kodowanie url używa się w wielu przypadkach:
- wysyłanie żądań do api
- parsowanie adresów przed dodaniem do bazy danych
- testowanie ( i omijanie) filtrów w aplikacjach wymagających interakcji
Pełną listę wszystkich znaków wraz z odpowiednim kodowaniem znajdziesz tutaj
Jak zakodować url?
Kodowanie url można wykonać na wiele sposobów , w zależności od używanego języka:
PHP
Kod:
PERL ( wymagany pakiet liburi-encode-perl )
Kod:
Python
Kod:
Kodowanie znaków niezastrzeżonych – możliwe?
Tak – zamieniamy znak na kod ASCII i dodajemy znak % na początku.
np. A to %41
Podwójne kodowanie
Podwójne kodowanie jest tym samym co pojedyńcze, z tym że dodatkowo zamieniamy znak % z pierwszego kodowania na jego odpowiedni, tj %25.
Przykładowo znak równości (=):
– kodowanie pojedyńcze: %3D
– kodowanie podwójne: %253D
Najczęściej jest stosowane w przypadku ataków LFI ( Local File Inclusion), lub chęci zmylenia filtrów jeśli wykrywają pojedyńcze kodowanie.
Największą “sławę” zdobyło w chwili ujawnienia istnienia tej luki w IIS 5.0 kilkanaście lat temu (CVE-2001-333)
Po(x)jne kodowanie
Kodowanie znaków można wykonać dowolną ilość razy – w kolejnych iteracjach zasada działania jest taka sama jak dla kodowania podwójnego.
Potrójne kodowanie dla znaku równości wynosić będzie więc %25253D , poczwórne %2525253D itp.
[…] dostęp do wszystkich treści ! Dodatkowo należy pamiętać że niektóre znaki mogą być odpowiednio kodowane co również może zmylić […]