Newsgroup: it.comp.os.linux.sys
Titolo: sicurezza cartelle upload web

problema :
 
sono riusciti  a caricarmi dei file su un server apache php su centos6x 
le cartelle erano con permessi 775 utente : utente ftp / gruppo : utente ftp
 
sono cartelle dove si vanno a depositare foto che un utente da interfaccia 
web amministra, tramite un database.
 
non credo che siano riusciti a bucare il sitema dell'interfaccia perchè 
altrimenti avrebbero caricato e cancellato anche pagine nel database, quindi 
nel sito
 
credo che sia un po' blanda la sicurezza di php con i permessi 775
 
allora che ho pensato: 
 
cambio il prorietario delle cartelle e lo metto apache
 
poi negli script di php quando carico un file gli faccio fare un chmod 0775 
sulla cartella, per poi una volta caricato o modificato riportarlo chmod 
0555
 
puà essere una soluzione?
 
è più sicuro se queste cartelle sono come proprietario apache o l'utnete 
ftp?
 
 
quali altri ecamotage posso trovare?
 
grazie 
enrico 

 cambio il prorietario delle cartelle e lo metto apache
 
Finché non scopri esattamente come sono entrati, ogni tentativo di 
chiudere il buco è futile.
 
Bye.
 
 

cambio il prorietario delle cartelle e lo metto apache
 
Senza sapere com'è strutturato il sistema non ti si può dire niente.
 
Esempio tratto dalla mia esperienza:
 
	- ftp dove compare una cartella nuova ("tmp")
	- nella cartella c'è un file tipo "aoqjehegh.php"
	- nel log di Apache c'è un subisso di accessi a file
	  "aoqjehegh.php" in ogni cartella possibile
 
In questo caso il tizio è riuscito a entrare via FTP (password fetente), ma voleva
dotarsi di una ricca shell sulla macchina. Che non ha potuto avere, perché la root
dell'ftp e quella del web non si guardano nemmeno di striscio.
 
Ma in caso, avrei potuto mettere un .htaccess in sola lettura nella directory, con
cui avrei disattivato tutti gli accessi e pure la engine del PHP (e le altre: dato
che ogni tanto per default ti ritrovi eseguibili Python, Perl e CGI).
 
Leonardo
-- 
 
A terrible beauty is born.
                                     - W. B. Yeats, Easter 1916

 Python, Perl e CGI).
 
e non posso , perchè quelle directori sono directori dove  vanno depositate 
delle immagini che carica l'utente da interfaccia web.
 
 
credo pià che abbia eseguito uno script  con qualche ignection per fare un i 
upload dei file 
 
enrico 

 chiudere il buco è futile.
 
purtroppo la vedo dura, come ho scritto prima aggiornado il pannelle mi 
aveva cambiato la rotazione dei file e ho perso  i log di quel perido .
 
enrico 
 
 

upload dei file 
 
Quei file 'mirikute.html' ce li hai ancora, o ricordi che utente/dimensione e
contenuto avevano?
 
Perché mi torna poco, salvo configurazioni (improb|diversamente)abili, che un
file PHP vada a fare un upload nella directory FTP.
 
Potrei cambiare idea se mi dicessi che l'FTP dava accesso pieno alla webroot;
in questo caso, il fatto che il sito non sia stato aperto come una cozza vale
come prova che non sono passati di lì, tipo il test della vergine cieca.


 vergine cieca.
 
ftp a accesso a /home/utente/http/
giustamente per caricare i file del sorgente del sito web. come qualsiasi 
altro hosting che conosco .
 
 
 

altro hosting che conosco .
 
Sì, e però a questo punto mi meraviglia molto che non abbiano fatto di più. Tipo -
appunto - uploadare phpshell.php e magari mettere su un sito proprio :-)


 proprio :-)
è che le altre cartelle hanno permessi più rigidi, non 775 .
 
 

è che le altre cartelle hanno permessi più rigidi, non 775 .
 
Eh. Ma se da php funziona chmod, hai voglia ad avere permessi rigidi. Basta una
singola directory 775 per ospitare la shell, poi uno si rende conto e fa quello
che gli pare.


 conto e fa quello che gli pare.
 
 vedi sopra.
 
ma pui spammare, o fare altre azioni di ignection o altro ancora sempre con 
php.
 
 
enrico 
 
 

cerchiamo di rimanere su degli standard 
 
Oh, guarda che per es. nginx è abbastanza standard pure lui, eh. Non entro nelle
possibilità più esoteriche, però ce ne sarebbe <g>.


 nelle possibilità più esoteriche, però ce ne sarebbe <g>.
 
immagino.
 
enrico
 

 problema che php può eseguire chmod
 
che poi è il problema di sicurezza di vari CMS , che creano tutto da apache.
 
 quindi ho fatto una marzullata.. ho fatto la domanda e mi son dato la 
risposta. 
 
""proprietario apache no bene.. ""
 
quindi ho trovato :
 
http://php.net/manual/en/function.ftp-chmod.php
 
 
me sembra la meglio cosa 
 
però bisogna inbire questa fuzione 
 
http://www.w3schools.com/php/func_filesystem_chown.asp
 
 
e questa 
http://www.php.net/manual/en/function.chgrp.php
 
 
 
o sbaglio?

o sbaglio?
 
Non sbagli. E naturalmente (mi pare tu l'abbia già fatto, ma sempre meglio ripetere)
system, shell_exec e popen -- e spero di non dimenticarmi niente <grin>.
