„Unrestricted File Upload” czyli nieograniczone przesyłanie plików należy do mojej ulubionej grupy podatności aplikacji webowych. Spowodowane jest to tym, że jeżeli już uda mi się zlokalizować tego typu błąd bezpieczeństwa, prowadzi on najczęściej do zdalnego przejęcia kontroli nad serwerem. Skoro można przesyłać obrazki to dlaczego by nie spróbować przesłać na serwer pliku wykonywalnego po stronie serwera :).
Jako że sam proces testowania w przypadku natrafienia na nietypowy mechanizm zabezpieczający jest żmudny, a ilość przypadków do rozpatrzenia jest duża – warto ten proces zautomatyzować. Z pomocą przychodzi nam tutaj świetna wtyczka do Burpa – Upload Scanner.
Przesyłanie plików na strony internetowe to często niedoceniany obszar testów bezpieczeństwa. Powierzchnia tego typu ataków jest bardzo duża. Tylko nieliczne z problemów, które się pojawiają, przyciągają dużą uwagę bezpieczników (np. Luka ImageTragick ). Poza nimi istnieje niezliczona ilość podatności powodujących np. różnego rodzaju błędy pamięci. Należy pamiętać, że chociaż Twoja usługa sieciowa REST XML może nie być podatna na wstrzyknięcie zewnętrznych encji XML (XXE), nie oznacza to, że wykorzystywany parser obrazu dla metadanych JPEG XMP (czyli XML) nie ma problemu z XXE.
Aby można było stwierdzić, że zaimplementowany mechanizm przesyłania plików jest bezpieczny, należy go sprawdzić pod różnym kątem. Między innymi korelacji zachowania zależnego od rozszerzenia pliku, typu zawartości i samej zawartości. Ponadto treść pliku powinna przejść testy modyfikacji po stronie serwera, takie jak wymagania dotyczące rozmiaru obrazu lub operacje zmiany rozmiaru.
Głównymi funkcjonalnościami wtyczki „Upload Scanner” są:
- Zbadanie działania serwera pod kątem plików typu gif, png, jpeg, tiff, pdf, zip i mp4
- Zbadanie działania serwera pod kątem zmiany rozmiaru obrazu
- Zbadanie działania serwera pod kątem zmiany kolorów obrazu
- Zbadanie działania serwera pod kątem metadanych pliku exiftool typu „słowa kluczowe”, „komentarz”, itp.
- Zbadanie działania serwera pod kątem exploitów w PHP, JSP, ASP, XXE, SSRF, XXS i SSI.
- Zbadanie działania serwera pod kątem kombinacji rozszerzeń plików i typów zawartości.
- Zbadanie problemów za pośrednictwem ładunków uśpionych, interakcji z Burp Collaborator lub poprzez ponowne pobranie pliku/
- W domyślnej konfiguracji rozszerzenie spróbuje przesłać około 2000 plików.
Szybki skrót tego jak używać rozszerzenia w standardowej formie:
- Złap żądanie odpowiedzialne za przesłanie pliku na serwer i przekieruj je do wtyczki:
2. Skonfiguruj parser, tak aby poprawnie identyfikował adres pliku na serwerze po przesłaniu:
3. Rozpocznij skan 🙂
Wtyczka do znalezienia w BApp Storze i na githubie – UploadScanner