Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Gitlab. Jak uploadem można było *czytać* pliki z serwera? Podatność warta ~120 000zł
Podatność została opisana tutaj, a w sekurakowym skrócie:
- Jedna z funkcji API umożliwia upload plików *.tar.gz
- Po stronie serwerowej używana jest funkcja untar_zxf
- Teraz istota luki. W pliku sekurak.tar.gz można umieścić link symboliczny.
Np.:
$ ln -s /srv/tutaj_wielkie_sekrety.cfg niewinny_plik
$ tar cvzf sekurak.tar.gz niewinny_plik - Po uploadzie pliku sekurak.tar.gz, na serwerze rozpakowuje się link symboliczny, prowadzący (na serwerze) do /srv/tutaj_wielkie_sekrety.cfg
- Teraz wystarczy odczytać niewinny_plik z serwera i voila:
Szybkie remedium? Nie rozpakowywać na serwerze plików, które są linkami symbolicznymi! Szczegóły eksploitacji oraz informacja o przyznanej nagrodzie ($29 000) dostępne są tutaj.
Jeśli interesują Cię typu tematy/podatności/sposoby radzenia sobie z nimi – zerknij na sekurakową książkę o bezpieczeństwie aplikacji webowych (800 stron, kolor, a z kodem wielkanoc-2022 otrzymujesz 20% rabatu)
~Michał Sajdak
I jak zwykle zgłaszający musiał przez miesiąc bić się z koniem, nie otrzymując zwrotnej odpowiedzi. Gitlab początkowo zaniżył poziom ryzyka i chciał ponad dwukrotnie mniej $.