Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Stworzenie bezpiecznego uploadu.
koxfx
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 18.04.2015

Ostrzeżenie: (0%)
-----


Można weryfikować rozszerzenia, mime_types, sprawdzić czy plik jest obrazkiem. Wszystko to da się obejść. Czy dodanie tego do .htaccess załatwi sprawe:

  1. ForceType application/octet-stream
  2. <FilesMatch "(?i).jpe?g$">
  3. ForceType image/jpeg
  4. </FilesMatch>
  5. <FilesMatch "(?i).gif$">
  6. ForceType image/gif
  7. </FilesMatch>
  8. <FilesMatch "(?i).png$">
  9. ForceType image/png
  10. </FilesMatch>


Jest jakieś lepsze rozwiązanie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
koxfx
post
Post #2





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 18.04.2015

Ostrzeżenie: (0%)
-----


Zastanawia mnie czy archiwa niosą jakies zagrożenia.(.rar,.zip,.7zip)
Dozwolone będą nie tylko pliki graficzne. Trzeba prawdopodobnie pozbawić pliki możliwości wykonywania. Czy zaszyfrowanie pliku podczas uploadu i odszyfrowanie podczas ściągania może być zebezpieczeniem?
Go to the top of the page
+Quote Post
redeemer
post
Post #3





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

Ostrzeżenie: (0%)
-----


Cytat(koxfx @ 10.11.2015, 19:11:14 ) *
Zastanawia mnie czy archiwa niosą jakies zagrożenia.(.rar,.zip,.7zip)
W pewnych sytuacjach tak. Na początek warto zapoznać się z tzw. "Zip bomb" i 42.zip czyli zipe, który zajmuje 42 kilobajty, a rozpakowuje się do 4.5 PETAbajtów :-)

Dodatkowo do zipa oprócz zwykłych plików i katalogów możesz dodać linki symboliczne, które po rozpakowaniu na serwerze, w pewnych sytuacjach mogą zaburzać logikę aplikacji, albo udostępniać informacje. Przykład:
Jest panel, gdzie użytkownik uploaduje zipa, który jest rozpakowany na serwerze za pomocą system("unzip $plik -d $katalog"). Może sobie także na stronie przeglądać spakowane pliki, ale tylko *.jpg. W takich okolicznościach atakujący może wrzucić do zipa link symboliczny z nazwą test.jpg, kierujący do jakiegoś pliku php (albo chociażby /etc/passwd) aby zobaczyć jego zawartość. W przeglądarce będzie to wyglądać jak "zepsuty obrazek" bo obrazkiem oczywiście nie będzie, tylko źródłem pliku do którego linkowaliśmy.

Jak zrobić takiego zipa na linuxie:
Kod
mkdir evilzip
cd evilzip/
ln -s /etc/passwd evil.jpg
ln -s ../albo/jakis/plik.php evil2.jpg
zip --symlinks -r ../evil.zip *


Edit: No i polecam też obejrzeć sobie prezentację Gynvaela "Dziesięć tysięcy pułapek: ZIP, RAR, etc." z SEConference 2013

Ten post edytował redeemer 11.11.2015, 10:52:40
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 12:08