Skip to main content
idego

Luki bezpieczeństwa przy przesyłaniu plików

Autor: Idego Group

Luki bezpieczeństwa przy przesyłaniu plików

Przesyłanie plików to częsta funkcja aplikacji webowych. Jednak wielu programistów błędnie uważa, że zadanie kończy się w momencie, gdy plik pomyślnie dotrze do serwera. Ten błąd tworzy luki bezpieczeństwa, które wykorzystują cyberprzestępcy. Zadanie jest ukończone dopiero po spełnieniu dwóch warunków: plik zostaje przesłany, a cały proces przebiega bezpiecznie.

Obejścia oparte na rozszerzeniach

Programiści powszechnie weryfikują typy plików poprzez sprawdzanie rozszerzeń za pomocą białych lub czarnych list. Te metody mają jednak słabości. Wzorce regex uwzględniające wielkość liter pozwalają na przesyłanie plików takich jak shell.pHp z pominięciem ograniczeń. Nieprawidłowo zakotwiczone wzorce dopuszczają pliki jak shell.php.jpg. Skracanie nazw plików może skutkować plikiem kończącym się na .php zamiast .jpg.

Wstrzykiwanie bajtu null

Zmiana nazwy pliku na shell.php%00.jpg wykorzystuje sposób, w jaki niektóre języki traktują bajty null jako terminatory, pozwalając na wykonanie PHP mimo pozornego zakończenia na .jpg.

Zagrożenia SVG i XML

Pliki SVG to dane XML podatne na ataki typu stored cross-site scripting (XSS). Złośliwy JavaScript osadzony w plikach SVG wykonuje się, gdy użytkownicy je pobierają.

Przemierzanie katalogów

Nazwy plików takie jak ../../../etc/passwd mogą nadpisywać krytyczne pliki serwera. Ochrona wymaga używania losowo generowanych nazw plików z oryginalnymi nazwami przechowywanymi oddzielnie jako metadane.

Odmowa usługi

Równoległe przesyłanie dużych plików wyczerpuje zasoby serwera lub przestrzeń dyskową. Walidacja rozmiaru pliku zapewnia niezbędną ochronę.

Fałszowanie Content-Type

Nagłówkiem Content-Type można łatwo manipulować za pomocą narzędzi przechwytujących. Interpretacja serwera opiera się na rzeczywistej zawartości pliku, a nie na nagłówkach.

Obejście numeru magicznego

Atakujący dołączają prawidłowe sygnatury plików, takie jak GIF89a, do złośliwych plików, aby oszukać systemy walidacji numerów magicznych.

Wstrzykiwanie poleceń

Gdy nazwy plików są przekazywane do systemowych plików wykonywalnych, nazwy takie jak file;whoami;pwd.jpg umożliwiają wykonanie poleceń. Losowe nazwy plików eliminują to ryzyko.

Zalecenia bezpieczeństwa

Programiści nie powinni bezwarunkowo ufać danym wprowadzanym przez użytkowników. Wdrożenie wyspecjalizowanego oprogramowania do walidacji, utrzymywanie zaktualizowanych zależności i ocena wielu czynników walidacji wzmacniają mechanizmy obronne.

Powiązane artykuły