DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Web aplikacije, web servisi i software (http://www.devprotalk.com/forumdisplay.php?f=30)
-   -   Wordpress: kako da izbegnem chmod 777 za upload folder (http://www.devprotalk.com/showthread.php?t=10671)

ljtruba 09. 01. 2012. 11:41

Wordpress: kako da izbegnem chmod 777 za upload folder
 
Pozdrav,
vise puta sam haknut preko foldera koji su bili u 777 rezimu.

Kako to da izbegnem za Wordpress?
Hvala

mangia 09. 01. 2012. 11:48

recimo mod_fcgid koji omogućava da se svaki sajt vrti pod userom koji je vlasnik fajlova.

Tako možeš na sve fajlove koji sadrže passworde staviti chmod 600 i koji su čitljivi samo tvom useru. Takođe dir koji je tebi writable, može ostati zabranjen za sve druge. I nikada nećeš imati problem sa permisijama.

centaur 09. 01. 2012. 12:17

777 je ludost. Promeni vlasnika direktorijuma.
Takodje, dodaj .htaccess i zabrani da moze da "izadje" bilo sta sto je recimo .php, .sh...
Ako recimo imas samo slike, dozvoli da moze samo .png, .jpg, .gif i relativno si miran.

I ako si haknut, reinstaliraj server i dobro proveri fajlove koje postavljas. Moguce je da su "hakeri" ostavili neki backdoor.

miks 09. 01. 2012. 17:30

Moze li neko objasnjenje kako se to dogodilo? Osim upload foldera (i eventualno cache foldera, mozda je upravo ovde problem u kesiranju) nijedan folder nebi trebalo da ima write permission, osim ako neces autoupdate i online edit fajlova i ostalog, mada i tu postoji opcija sa FTP-om.

ivanhoe 09. 01. 2012. 17:49

1) Upload folderu ne moras da dajes 777, vec samo apache treba da ima pristup njemu, a obicno je na hostingu apache dodat u grupu usera, pa ce i 770 resiti problem.

2) Treba uvek dodati u .htaccess:
Kôd:

RewriteCond %{REQUEST_FILENAME} !\.[jpg|jpeg|gif|png]$
RewriteRule  /upload/putanja/.  -  [F,L]

U sustini ovo zabranjuje pristup spolja bilo cemu u upload dir-u, osim slikama i to je onda prilicno sigurno (ako vec apache ne moze da radi pod tvojim userom). Ako je potrebno uploadovati neke druge vrste fajlova samo dodas te ekstenzije razdvojene sa | iza png...

ljtruba 10. 01. 2012. 13:09

Koliko saveta, a nista skoor ne razumem... :)

Dakle imam uploads folder kojem po pravilima WP treba da dam 777, a to ne zelim, vec 755

Ovo sto je ivanhoe napisao mi je najlogicnije, samo pitanjce... koja je putanja?
Ako je .htaccess u tom folderu, sta onda treba da pise?
hvala

ljtruba 10. 01. 2012. 13:15

Stavio sam ovo u htaccess

<Files ^(*.jpeg|*.jpg|*.png|*.gif)>
order deny,allow
deny from all
</Files>

i ostavio za sada 777...

centaur 10. 01. 2012. 13:55

Folder mora da ima dozvolu za pisanje za apache usera, a nikako da bude 777.
Znaci, treba apache (ili kako god da se zove) da bude vlasnik direktorijuma i da ima 700 ili eventualno 770 (recimo ako radis rsync na neki server pa jos neko treba da pristupa fajlovima ili bilo koji slicni scenario).
Svi fajlovi u tom direktorijumu treba da budu 600 (ili opet eventualno 660).
Uz to i ovaj .htaccess koji si dodao, relativno si siguran (bar po tom pitanju).

ljtruba 10. 01. 2012. 15:59

pitao sam provajdera, kaze sve moze, ali najbolji je suPHP
sta god to znacilo :)

Nemanja Avramović 10. 01. 2012. 17:48

suPHP menja UID procesa koji izvršava skripu tako da se skripte izvršavaju pod onim korisnikom koji je njihov vlasnik, tako da skripta može i da piše u fajlove koji imaju chmod 644 i foldere koji imaju 755 npr (ako je owner isti kao owner skripte). Ja ga koristim na serveru i super vrši posao, a pritom i sprečava malware da pređe sa nekog sajta na tom serveru na drugi sajt na istom serveru

srdjevic 10. 01. 2012. 19:36

Najveci problem su ti html editori i ekipa koji rade upload fajlova. Pa ti onda haker lepo spakuje test.php.gif koji ima header GIF fajla (pa getimageinfo() vraca sve ok), a iza njega PHP kod...

E sad, najveci crnjak (koji nikako ne mogu da shvatim) je da default config PHPa/Apacha parsira PHPove koji imaju ".php" u imenu, a NE koji se zavrsavaju na .php. Lako je proveriti ovo, a jos lakse ispraviti...

Treba dodati jos nesto u htaccess pored odbijanja pristupa, jer ova vasa resenja (@ljtruba, @ivanhoe) ne hvataju ovo o cemu pisem.


Info @ http://shishworks.blogspot.com/2010/...load-file.html

mangia 10. 01. 2012. 20:03

Ako se server izvršava pod apache userom a radi se o sherovanom hostingu onda imaš problem kakvu god permisiju staviš jer ako dodijeliš write pravo na neki dir za apache usera onda neka maliciozna skirpta koja se izvrši u tom diru može da piše po svim drugim dirovima koji imaju write prava za apache usera bez obzira što se radi o sasvim desetim sajtovima koji su na istom serveru...

ivanhoe 10. 01. 2012. 20:44

@srdjevic: ne znam za taj napad, probao sam sad na dva servera i ni na jednom ne radi sa fajl.php.gif, server ga posalje kao image/gif

Onaj vektor napada za koji sam cuo je da uploadujes skript.gif, sto je u stvari php skript i da onda iskoristis neku rupu u sajtu da ga nateras da uradi include tog koda... to je vrlo opasna stvar, ali tu nikakve permisije ne pomazu

srdjevic 10. 01. 2012. 21:06

Citat:

Originalno napisao ivanhoe (Napišite 104181)
@srdjevic: ne znam za taj napad, probao sam sad na dva servera i ni na jednom ne radi sa fajl.php.gif, server ga posalje kao image/gif


Da, posalje on fajl kao image/gif nazad, to nije problem, ali ako fajl ima u sebi PHP kod, on se izvrsi isto... Recimo <?php phpinfo(); ?> ce verovatno postaviti taj header jer je .gif, ali ce ludi Apache izvrsiti PHP kod; mozda nece dati nista u browseru / za download, ali kad pogledas source, vidis output phpinfo()a... Tako je bar bilo na skoro svim serverima koje sam proverio.

centaur 10. 01. 2012. 21:25

@sredjevic
Sa standardnim podesavanjem apache/php (probao na ubuntu i centos) izvrsavaju se samo fajlovi koji se zavrsavaju sa .php.
Fajl tipa nesto.php.gif se naravno ne izvrsava. To svakako nije standardno podesavanje apacha-a.

I ovo sa .htaccess je poslednja linija odbrane. Treba spreciti upload fajla.
Dodatno, moze se staviti u .htaccess da se u tom direktorijumu ne izvrsava php, ali smatram da je to u ovom slucaju nepotrebno.

srdjevic 10. 01. 2012. 21:49

Evo sad sam procitao opet ceo clanak, i link koji ga je podstako (http://artur.ejsmont.org/blog/conten...-security-risk)... Verovatno sam ga ja proveravao samo na Debianima, ili na serverima koji koriste AddHandler a new AddType... A mozda su i ispravili to u medj'vremenu, ko ce ga znati... ovaj info je ~godinu dana star ipak, pa se ne secam vise detalja, davno sam izucavao ovo... :)

webarto 10. 01. 2012. 22:28

Mislim da je ovo default, $ označava kraj stringa...

PHP kôd:

<FilesMatch "\.php$">
    
SetHandler application/x-httpd-php
</FilesMatch>
<
FilesMatch "\.phps$">
    
SetHandler application/x-httpd-php-source
</FilesMatch


mangia 11. 01. 2012. 00:52

Fora sa nastavkom .gif je sigurnosni propust primjećen još davno u nginx web serveru gdje nije dobro kontrolisana ekstenzija nego sve što dobije proslijedi na "žvakanje" i tako .gif postane remote shell

Štivo za čitanje 1
https://nealpoole.com/blog/2011/04/s...configuration/

Štivo za čitanje 2
http://forum.nginx.org/read.php?2,88845,88996

ljtruba 11. 01. 2012. 10:38

Citat:

Originalno napisao Nemanja Avramović (Napišite 104177)
suPHP menja UID procesa koji izvršava skripu tako da se skripte izvršavaju pod onim korisnikom koji je njihov vlasnik, tako da skripta može i da piše u fajlove koji imaju chmod 644 i foldere koji imaju 755 npr (ako je owner isti kao owner skripte). Ja ga koristim na serveru i super vrši posao, a pritom i sprečava malware da pređe sa nekog sajta na tom serveru na drugi sajt na istom serveru

Nemanja, da li mi mozes reci vise o suPHP... kako se namesta, podesava, kako se primenjuje na WP??

Nemanja Avramović 11. 01. 2012. 15:41

Iskreno, ja koristim managed vps tako da je tehnička podrška instalirala i podesila suPHP za mene, ali ne bi trebalo da bude preterano komplikovano. Ima i dokumentacija na www.suphp.org gde je opisano kako se instalira i podešava.

Što se WP-a tiče, nema šta da se primenjuje na njega jer je suPHP dodatak za Apache i kada se jednom podesi (dobro napisane) skripte ne bi trebalo da primete da se bilo šta promenilo u serverskom okruženju, odnosno sve bi trebalo da radi out-of-the-box...

ljtruba 11. 01. 2012. 16:45

Ja sam na VPS, tamo kazu da to radi... samo ja ne znam sta treba da uradim da bi proradilo :)

Nemanja Avramović 11. 01. 2012. 20:33

Pa ako je aktiviran onda radi :) bar bi trebalo. Vidi da li taj folder za upload i index.php fajl wp-a (a i ostali fajlovi) imaju istog ownera... namam pojma, ajde napravi fajl nesto.php i u njega ubaci ovo:

PHP kôd:

<?php print_rposix_getpwuid(posix_getuid()) );

Ako je name nobody ili apache onda nije aktivan suPHP. Ako je name isto kao owner fajla onda radi suPHP.

ivanhoe 11. 01. 2012. 22:57

jos jednostavnije stavi na fajlu da samo ti imas pristup (600) pa vidi jel mozes da ga otvoris preko apache-a

ljtruba 12. 01. 2012. 20:14

Citat:

Originalno napisao Nemanja Avramović (Napišite 104231)
Pa ako je aktiviran onda radi :) bar bi trebalo. Vidi da li taj folder za upload i index.php fajl wp-a (a i ostali fajlovi) imaju istog ownera... namam pojma, ajde napravi fajl nesto.php i u njega ubaci ovo:

PHP kôd:

<?php print_rposix_getpwuid(posix_getuid()) );

Ako je name nobody ili apache onda nije aktivan suPHP. Ako je name isto kao owner fajla onda radi suPHP.

Array ( [name] => nobody [passwd] => x [uid] => 99 [gid] => 99 [gecos] => Nobody [dir] => / [shell] => /sbin/nologin )

ivanhoe 12. 01. 2012. 21:58

^ izvrsava se kao apache (tj. user nobody)

Nemanja Avramović 12. 01. 2012. 22:21

Onda očigledno ne radi, a zašto - nemam pojma, ali tehnička podrška bi trebalo da zna odgovor na to pitanje. Možda nije restartovan Apache :)

ljtruba 13. 01. 2012. 21:19

Danas sam imao pravi Twilight zone...

Otisao u WHM >> Service Configuration >> Configure PHP and SuExec i nasao ovakav setting

Option Configured Value
Default PHP Version (.php files) 5
PHP 5 Handler dso
PHP 4 Handler cgi

Apache suEXEC on

promenio PHP 5 u suphp i sve se lepo resetovalo i proradilo

dobio sam ovo
Array ( [name] => hifiles [passwd] => x [uid] => 32012 [gid] => 32014 [gecos] => [dir] => /home/hifiles [shell] => /bin/bash )

nakon toga je WP lepo radio na 755, ali...

Tek veceras primetim preko mobilnog da mi se forum raspao... kao da nije ucitao CSS.
Na kompu sve lepo radi, kolegi lepo radi, kad krenuli korisnici da se zale da se i njima raspao forum

I sve lepo vratim na staro... zna li neko u cemu je fora?
Hvala

MorenoArdohain 13. 01. 2012. 22:29

Moras prvo dokuciti zasto se CSS nije ucitao (ako je to u pitanju) ili proveri server logove.

ljtruba 14. 01. 2012. 11:19

Hosting provajder mi je podesio sve kako treba... pokrenuli su neku skriptu i koliko vidim svi folderi su 755 a fajlovi 644

Default PHP Version (.php files) 5
PHP 5 Handler suphp
PHP 4 Handler suphp

Apache suEXEC on

Hvala svima


Vreme je GMT +2. Trenutno vreme je 03:30.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.