Autor | Zpráva | ||
---|---|---|---|
Timy Profil |
#1 · Zasláno: 30. 11. 2007, 01:16:56
Mám kód na upload obrázků na FTP. Zkráceně vypadá takhle:
if(isset($_POST["submit"])) Zdá se, že přes tenhle kód mi někdo na web protlačil PHP soubor s hotovou administrací, díky něhož se mohl procházet po celém mém webu. Dost dobře nevím, jak se mu to povedlo, takže prosím o radu, kde mám díru. |
||
DFly Profil |
#2 · Zasláno: 30. 11. 2007, 02:18:49 · Upravil/a: DFly
spis to vidim, na odchyceni hesla FTP nekde cestou po webu
nebo mas nejaky spyware v kompu, ktery odesila soubor z hesly FTP klienta (pravdepodobnejsi varianta) co mas za FTP klienta? o to vetsi duvd zacit konecne pouzivat SCP nebo FTPS |
||
Timy Profil |
#3 · Zasláno: 30. 11. 2007, 10:25:50
DFly
„spis to vidim, na odchyceni hesla FTP nekde cestou po webu“ Tuhle možnost prozatím neberu v úvahu, protože první PHP soubor se tomu človíčkovi povedlo dostat do složky, kam normálně ukládám uploadnuté obrázky z webu. Pochybuju, že to byla jen náhoda. A vzhledem k tomu, že jsem nechtěl psát nějaký kód pro výpis uploadnutých obrázků, nastavil jsem v .htacces Options +Indexes, takže dále předpokládám, že se k té stránce dostal přes Google. |
||
aswd Profil * |
#4 · Zasláno: 30. 11. 2007, 10:45:13
Tuhle možnost prozatím neberu v úvahu,
To bys v úvahu brát měl, mne se stalo to samé. Taky ve složce s obrázky a dokonce jeden obrázek nahradil souborem php se stejným názvem, akorat s koncovkou php. A přes upload formulář tobýt nemohlo, protože ten je v administraci pod heslem, kontroluje mime typy a navíc obrázek zobrazuje zprostřčedkovaně přes script, takže i kdyby to tam dostal, tak by to ale nebylo s koncovkou PHP. |
||
Timy Profil |
#5 · Zasláno: 30. 11. 2007, 11:00:43
Je jisté, že se tam ten PHP soubor nemohl skrze ten uploadovací skript dostat? Mám navíc vypnutý safe_mode.
Další důvod, proč si nemyslím, že by mi odchytil heslo je, že nevidím důvod, proč by tam nahrával tu PHP administraci (Total commander online…), když měl přístup k celému FTP. |
||
djlj Profil |
#6 · Zasláno: 30. 11. 2007, 11:13:27
Timy
Hodnotu, která je ve $_FILES["obrazek"]["type"], posílá prohlížeč, proto se dá i zfalšovat. Pro ověření, zda se jedná o obrázek, používej getimagesize. |
||
Timy Profil |
#7 · Zasláno: 30. 11. 2007, 11:29:39
djlj
Díky. Takže správně by to mělo být takhle? if(isset($_POST["submit"])) |
||
djlj Profil |
#8 · Zasláno: 30. 11. 2007, 11:36:22
Timy
Protože chceš jen určité typy obrázků, tak bych to udělal takto: if($typ=getimagesize($_FILES["obrazek"]["tmp_name"]) && ($typ[2]==1 || $typ[2]==2 || $typ[2]==3)) |
||
Timy Profil |
#9 · Zasláno: 30. 11. 2007, 11:41:42
djlj
Dobře, děkuju :-) |
||
Časová prodleva: 16 let
|
0