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)
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
Gdzie tutaj „podatność WordPressa” skoro do „ataku” trzeba użyć szkodliwej wtyczki?
A co dostarcza tę podatną funkcję?