![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 217 Pomógł: 2 Dołączył: 23.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Czy mogą inni jeśli tak to w jaki sposób obejść moje zabezpieczenia dotyczące uploadu plików?
Sprawdzam za pomocą ereg() czy w nazwie występuje np: php, php3, php4, php5.... Czy mogą oni w jakiś sposób wgrać plik php? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 657 Pomógł: 125 Dołączył: 29.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
mogą. Wystarczy, że rozszerzenie będzie inne. Ale wtedy nic z tym nie zrobisz, bo i tak nie odpalisz pliku php, jeśli nie ma on rozszerzenia .php
Sprawdzanie po rozszerzeniach wystarcza. Raz widziałem stronę z uploadem (nie będę podawał linku, żeby nie robić antyreklamy), na której nie było sprawdzane rozszerzenie, a mime type - takie zabezpieczenie można o kant dupy potłuc, bo mime type można sfałszować (kolega myślał, że mime type jest mu zwracane na podstawie zawartości pliku) -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
po co tak?
sprawdzaj czy typ mime jest taki jaki dopuszczasz np. jpg, gif. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 217 Pomógł: 2 Dołączył: 23.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dobra ale w jaki sposób to zrobią.
Przecież jak zmienią rozszerzenie skryptu to sie nie wykona |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Wsz7ystko zależy od konfiguracji serwera. Miałem już sam doczynienia z serwererami, gdzie dla wszystkich plików poza jpg,png,gif było włączone parsowanie kodu PHP.
Co do mime. Zależy które jest sprawdzane. Jeżeli to wyłane przez przeglądarkę to jest to błąd - bo to można sfałszować. Dużo pewniejsze jest sprawdzanie mime po stronie serwera. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 217 Pomógł: 2 Dołączył: 23.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
w jaki sposób można sfałszować mime?
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 657 Pomógł: 125 Dołączył: 29.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
w jaki sposób można sfałszować mime? No przecież Crozin już wyjaśnił. Jeśli sprawdzamy mime type wysyłane przez przeglądarkę, to równie dobrze ta przeglądarka może wysłać sfałszowane mime. Po prostu wystarczy "powiedzieć" przeglądarce jakie MIME ma wysłać serwerowi. -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
No przecież Crozin już wyjaśnił. Jeśli sprawdzamy mime type wysyłane przez przeglądarkę, to równie dobrze ta przeglądarka może wysłać sfałszowane mime. Po prostu wystarczy "powiedzieć" przeglądarce jakie MIME ma wysłać serwerowi. a konkretniej nagłówek HTTP -------------------- ET LINGUA EIUS LOQUETUR IUDICIUM
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 461 Pomógł: 32 Dołączył: 17.09.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Widziałem jakiś czas temu funkcję, moduł, klasę (co to było nie pamiętam), które sprawdzały w locie mime-type bazując na ustalonych regułach.
pozdrawiam, Łukasz |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Jak na moje oko to możesz wgrać plik na serwer, spakować go np. zipem i po sprawie.
![]() -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 6 Dołączył: 21.03.2009 Skąd: Obecny :) Ostrzeżenie: (0%) ![]() ![]() |
Moim skromnym zdaniem zapominając o mime istnieje jeszcze jedna ważna reguła. Jeżeli zdarzy się, że na serwerze występują pliki ".inc" to należy pamiętać równierz o nich. Często się żdarza, że na serwer nie prasuje plików inc i można je nie tylko podmienić ale równierz sobie obejrzeć w przeglądarce
![]() |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 217 Pomógł: 2 Dołączył: 23.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 79 Pomógł: 3 Dołączył: 23.12.2008 Skąd: Piaseczno Ostrzeżenie: (0%) ![]() ![]() |
ale najprościej, jeżeli to grafika, będzie chyba uzycie getimagesize do sprawdzenia wymiarów pliku. Tego chyba nie da się oszukać :-)
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
No załózmy ze wgraj spakowany plik php zipem. Jak zostanie on wykonany? Właśnie chyba w tym rzecz aby nie został wykonany. ;p @edit Mam tu na myśli pakowanie plików php. Nie napisałeś co chcesz uploadować. ;d Ten post edytował fifi209 4.04.2009, 08:15:41 -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 217 Pomógł: 2 Dołączył: 23.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
A jak może zostać wykonany, chcę to wiedzieć
![]() |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 1 657 Pomógł: 125 Dołączył: 29.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
A jak może zostać wykonany, chcę to wiedzieć ![]() Nie może ![]() No chyba, że napiszesz moduł do Apache'a, który w czasie rzeczywistym wypakowuje plik zip i odpala zawarty w nim .php ![]() Ten post edytował .radex 4.04.2009, 09:17:31 -------------------- |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 0 Dołączył: 16.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
A rozszerzenia .phtml .shtml .asp .aspx .json .js .html .xhtml .htm itp. ? .phtml .shtml moze odpalacc php, .json mzoe sluzyc jako serwer danych, .js tez jako keylogger, .asp .aspx moze odpalic asp, .*htm* moze zawierac js..
|
|
|
![]()
Post
#18
|
|
![]() Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
zamiast sprawdzać czy w nazwie czasem nie pojawiło się .php itp
lepiej daj tablicę z dozwolonymi formatami, z nazwy nadesłanej grafiki/aplikacji odcinaj 4 ostatnie znaki i potem sprawdzaj w in_array" title="Zobacz w manualu PHP" target="_manual . |
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
@Spawnm: do pobierania rozszerzenia pliku służy pathinfo" title="Zobacz w manualu PHP" target="_manual
Co do tematu: finfo_file" title="Zobacz w manualu PHP" target="_manual lub coś innego, co po stronie serwera odczytuje mime pliku już wgranego na serwer oraz sprawdzanie rozszerzenia. I tyle. |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 143 Pomógł: 17 Dołączył: 8.11.2008 Skąd: Libiąż Ostrzeżenie: (0%) ![]() ![]() |
Dokładnie. A do obrazków można użyć exif_imagetype(). W ten sposób nie można uszkodzić sobie serwisu
![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 03:40 |