W tym tygodniu Google wprowadziło nowe rozszerzenie domeny najwyższego poziomu (TLD) o nazwie .zip, co oznacza, że teraz można nabyć domenę .zip, podobnie jak domenę .com lub .org, za kilka dolarów. Społeczność związana z bezpieczeństwem od razu podniosła flagi dotyczące potencjalnych zagrożeń związanych z tym TLD. W tym krótkim artykule omówimy, jak atakujący może wykorzystać to rozszerzenie w połączeniu z operatorem @ i znakiem Unicode ∕ (U+2215), aby stworzyć bardzo przekonujące oszustwo. Jak widać poniżej, wszystko między schematem https:// a operatorem @ jest traktowane jako informacje użytkownika, a wszystko po operatorze @ jest natychmiast traktowane jako nazwa hosta. Jednak nowoczesne przeglądarki, takie jak Chrome, Safari i Edge, nie chcą, aby użytkownicy uwierzyli w autentykację na stronach internetowych przypadkowo jednym kliknięciem, dlatego ignorują wszystkie dane w sekcji informacji użytkownika i przekierowują użytkownika do części związanej z nazwą hosta w adresie URL.
Na przykład URL https://google.com@bing.com faktycznie przeniesie użytkownika do bing.com.
Jednak jeśli zaczniemy dodawać ukośniki do części adresu URL przed operatorem @, takie jak https://google.com/search@bing.com, nasza przeglądarka zacznie interpretować wszystko po ukośniku jako ścieżkę, a część związana z bing.com zostanie zignorowana, przenosząc nas na stronę google.com.
Załóżmy teraz, że chcielibyśmy stworzyć adres URL oszustwa, który zawierałby ukośniki przed operatorem @, aby wyglądało na to, że ofiara odwiedza adres URL google.com, ale chcielibyśmy, żeby przekierowywało ją na stronę bing.com.
Źródło: https://bugs.chromium.org/p/chromium/issues/detail?id=584644
Według zgłoszenia błędu w przeglądarce Chromium z 2016 roku, znaki Unicode U+2044 (⁄) i U+2215 (∕) są dozwolone w nazwach hostów, ale przeglądarka nie traktuje ich jako ukośniki. Obie te znaki Unicode przypominają prawidłowy znak ukośnika U+002F (/).
Jeśli stworzymy adres URL takiego jak:
https://google.com∕gmail∕inbox@bing.com
przekieruje on użytkownika na stronę bing.com, ponieważ ukośniki U+2215 są traktowane jako część informacji użytkownika w adresie URL, a nie jako początek ścieżki.
Możemy wykorzystać tę wiedzę i stworzyć bardzo przekonujące oszustwo dotyczące rzekomego pliku .zip w nowym TLD .zip od Google.
Jako przykład użyjemy pakietu kodu z repozytorium Github. Jeśli użytkownik chce pobrać kopię oprogramowania o otwartym kodzie o nazwie Kubernetes, musi odwiedzić sekcję wydań na Githubie i pobrać adres URL:
https://github.com/kubernetes/kubernetes/archive/refs/tags/v1.27.1.zip
Weźmy powyższy adres URL i zamieńmy wszystkie ukośniki po https:// na ukośniki U+2215 (∕), a przed v1.27.1.zip dodajmy operator @.
https://github.com∕kubernetes∕kubernetes∕archive∕refs∕tags∕@v1.27.1.zip
Odwiedzenie powyższego adresu URL przeniesie nas do części nazwy hosta, v1.27.1.zip. Niestety, domena 1.zip została już zajęta, ale możemy zgłosić podobny adres URL, v1271.zip, za 15 dolarów.
Nasz złośliwy adres URL poniżej wydaje się prawie niewyróżnialny od prawidłowego adresu URL:
Złośliwy:
https://github.com∕kubernetes∕kubernetes∕archive∕refs∕tags∕@v1271.zip
Prawidłowy: https://github.com/kubernetes/kubernetes/archive/refs/tags/v1.27.1.zip
W programie poczty elektronicznej możemy sprawić, że będzie jeszcze bardziej przekonujący, zmieniając rozmiar operatora @ na czcionkę o rozmiarze 1, co sprawia, że jest on wizualnie niewidoczny dla użytkownika, ale nadal obecny jako część adresu URL.
źródło: https://medium.com/@bobbyrsec/the-dangers-of-googles-zip-tld-5e1e675e59a5