Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book

Ciekawa, historyczna podatność w WordPress: możliwość wypakowania pliku… gdziekolwiek (nadpisywanie plików, backdoor na serwerze)

10 lutego 2020, 10:29 | W biegu | komentarze 2

Eksperymentalnie, przez tydzień postaramy się codziennie publikować minimum jedną podatność (nową, lub po prostu ciekawą) – wpisy można obserwować pod tagiem vulnz (tutaj RSS).

Różne pluginy korzystają z wordpressowej funkcji unzip_file, która służy do zwykłego rozpakowywania zipów. Co może być groźnego w zwykłym rozpakowywaniu zipów? Wiele. Wyobraźmy sobie że dostajemy od kogoś archiwum zip i pracujemy z uprawnieniami admina. Rozpakowujemy zip-a i nagle mamy zabackdoorowany system. Jak? Ktoś umieścił w archiwum plik o nazwie: ../../../../../Windows\system32\cmd.exe

No dobra, cała operacja się nie powiedzie, bo w desktopowych systemach programy rozpakowujące archiwa w zdecydowanej większości przypadków są zabezpieczone przed takim trickiem. Inaczej sprawa wygląda w bibliotekach serwerowych: tutaj macie niedawno ujawnionego na HackerOne buga w WordPressie (choć zgłoszonego parę lat temu):

The unzip_file function takes a target directory, $to, as an argument into which the files in the zip should be extracted. If a maliciously crafted zip file is extracted with a filename starting with the parent directory specifier (../) the file will be extracted into the parent of the '$to’ argument target directory. Filenames can be crafted in order to place files in any directory which the webserver has write permissions, for example a zip entry with a filename of ../../../../../../../../../../tmp/poc_file would place the file contents in the '/tmp/poc_file’ directory.

W skrócie można nadpisywać pliki do których uprawnienia ma WordPress (czy raczej web serwer), czy tworzyć nowe. Jeśli Wasz kod zawiera funkcję rozpakowywania plików – pamiętajcie żeby nie nabrać się na tę sztuczkę (w wielu przypadkach domyślnie ona działa). Niektórzy mogą się zastanawiać – jak zmienić nazwę pliku w gotowym zip-ie na „dziwną” (tj. zawierającą fragment ../../../). Odpowiedź: narzędzie zipnote. Inny przypadek tego typu podatności (tym razem .tar)? Bardzo proszę.

–ms

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



Komentarze

  1. Gdzie tutaj „podatność WordPressa” skoro do „ataku” trzeba użyć szkodliwej wtyczki?

    Odpowiedz
    • A co dostarcza tę podatną funkcję?

      Odpowiedz

Odpowiedz