Żądny wiedzy? Wbijaj na Mega Sekurak Hacking Party w maju! -30% z kodem: majearly

Gitlab. Jak uploadem można było *czytać* pliki z serwera? Podatność warta ~120 000zł

02 kwietnia 2022, 11:06 | W biegu | 1 komentarz

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

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. w0decki

    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 $.

    Odpowiedz

Odpowiedz