Newsgroup: it.comp.os.linux.sys
Titolo: come fanno? file eseguibili in /tmp

Ciao,
Ho un server con un po' di domini in vhost. Ho montato la dir /tmp su una
partizione NOEXEC in modo che non si possano eseguire file scaricati da
script php bacati.
Se creo un file .sh gli do i permessi necessari e lo eseguo mi esce
scritto che l'esecuzione non e' possibile.
Tuttavia, ho trovato nella dir /tmp un file .pl che conteneva il codice
per scrivere in due file di testo la lista di alcune directory del server.
Come hanno fatto ad eseguirlo???
C'e' un modo per non permettere la lettura da un file eseguito in /tmp dei
files e delle directory esterne???
Grazie

 Come hanno fatto ad eseguirlo???
perl 
file.pl
-- 
Linux.  Per l'utente che non deve chiedere.  Mai.  Crosoft.
		-- Reinterpretazione dello spot Denim, by Zuse

 perl 
file.pl
Ah ecco! :-\
Ma non esiste un moto per limitare tale rischio??? Non c'e' un modo per
far si che i file nella dir tmp possano essere solo scritti e letti?


Abilitando il safe_mode del php?


Se l'hanno fatto partire via php basta open_basedir
-- 
Roberto Tagliaferri-Linux user #30785 <-> r.tagliaferri@(forse)
tosnet.it
- Questo e' il mio appartamento.  Ti piace?  E' arredato in stile invernale.
- E com'e' d'estate?
- Con le finestre aperte.
		-- Judd Hirsh

pollom <NOs...@Nospam.NO> writes:

Se puo' essere letto allora puo' essere interpretato da
perl/bash/awk/python
.a.
-- 
Il mattino ha l'oro in bocca. Il MATTino ha l'OrO In bOcca.
i lma tt ino ha l'o roin bocc a.ilmattinohal'oroinbocca. il ma tt in
oh al' or oi nb oc ca. il matti noha l'oroinbocca. IL MATtiNO Ha l'ORO
InBOCCa. I l m a t t i n o  h a l' o r o i n b o c c a . ilmattinohal'oroin
BoCcA. iLmAtTiNoHaL'oRoInBoCcA.

 Se l'hanno fatto partire via php basta open_basedir
forse safe_mode_exec_dir visto che la /tmp comunque gli serve

 
E non si puo' impedire ad un interprete di leggere file in una determinata
directory?

 Abilitando il safe_mode del php?
Ma se abilito il safe_mode comunque chiunque potrebbe scaricare in /tmp un
file .pl essendo la dir di upload_file_tmp e in seguito potrebbe eseguirlo
tramite interprete perl.
O sbaglio????

 Come hanno fatto ad eseguirlo???
perl /tmp/
file.pl
Ciao, Micky
-- 
Errare è umano, ma per fare veramente casino ci vuole la password di root!
mi...@fcnz.zrfvan.arg

 
Ma si puo' eseguire tale comando senza vere una shell sul server?

pollom <NOs...@Nospam.NO> writes:

Hai il php installato?
<?php
passthrou("perl /tmp/
file.pl
");
?>



Mica vero, se fai un upload di un file il file passa comunque per /tmp, 
indipendentemente da dove lo fiondi poi te.
-- 
Roberto Tagliaferri-Linux user #30785 <-> r.tagliaferri@(forse)
tosnet.it
Se i Presidenti non lo fanno alle loro mogli, lo fanno al Paese!
		-- Mel Brooks

 ?>
Ah ecco!!! :-\
E in questo caso, impostando safe_mode su on, si impedirebbe l'esecuzione
di tale file???

 ?>
come gia` scritto, safe_mode_exec_dir

 indipendentemente da dove lo fiondi poi te.
open_basedir non impedisce mica che i file li aprano programmi
esterni tipo interpreti! safe_mode_exec_dir permette che exec,
system e compagnia vengano eseguiti solo su roba che sta nella
dir scelta (se non si puo` usare disable_functions chemmeglio)

 directory?
Cosa distingue un interprete da qualunque altro programma?
-- 
Daniele Orlandi

 dir scelta (se non si puo` usare disable_functions chemmeglio)
Fammi capire, se imposto quindi "safe_mode = On" e "safe_mode_exec_dir = "
in pratica, nella dir indicata in "upload_tmp_dir" non sarebbe possibile
far eseguire files neanche ad eventuali interpreti vero?


user e gruppo?
Dico una scemenza, ma per esempio, i file scaricati da script php nella
dir /tmp avranno user apache. Se ci fosse un modo per forzare i permessi
di tali files, in modo tale da permettere la lettura solo all'user apache,
forse eviterei che venissero "letti" da eventuali traduttori.

 forse eviterei che venissero "letti" da eventuali traduttori.
Io, invee, eviterei che gli interpreti possano essere lanciati tout curt,
con safe_mode_exec_dir, come ti hanno descritto gli altri.
Ciao,
-- 
Daniele Orlandi

 
Infatti credo sia la soluzione migliore, solo non capisco come questa
variabile possa impedire ad un traduttore di funzionare in una directory.
Insomma e' una variabile di php.ini quindi puo' agire sul server httpd, ma
non su un altro software.
Insomma come cavolo fa?

 non su un altro software.
Chiaro, limita solo quello che PHP può fare.
...ma utenti remoti non possono in generale lanciare altro software...
quindi il problema non si pone.
Ciao,
-- 
Daniele Orlandi

pollom ha scritto:

restringi cio` che puoi lanciare con system ecc. alla sola
directory indicata, dove ficcherai cio` che ti serve (cosa
che costringe spesso a ricompilazioni manuali ecc.)

 
Bene, safe_mode_exec_dir l'ho impostato senza indicare alcuna directory,
quindi non dovrebbe permettere l'esecuzione ovunque.
Ora per fare qualche prova vorrei, con uno script php, scaricare un file
.pl che semplicemente mi scrivesse in un file di testo l'output di "ls -la".
Mi manca solo di capire in php come posso effettuare l'upload di un file
nella dir /tmp
Un suggerimento??

 dir scelta (se non si puo` usare disable_functions chemmeglio)
:-((((
E pensare che per ridimensionare le immagini uso giusto un programma 
esterno...
Come faceva quella canzonaccia anni 90?
"Sei un pirla, c'hai la faccia da pirla..
"
-- 
Roberto Tagliaferri-Linux user #30785 <-> r.tagliaferri@(forse)
tosnet.it
Cosa non darei per fuggire a ovest di me stesso.
		-- Altan

 esterno...
Perché non usare GD?
Ciao,
-- 
Daniele Orlandi

 
Perchè quando installai gd la prima volta non mi gestiva le immagini a 
24 bit e quindi, visto che imagemagik faceva alla bisogna, ho cominciato 
con quello.
Poi la pigrizia...
-- 
Roberto Tagliaferri-Linux user #30785 <-> r.tagliaferri@(forse)
tosnet.it
Al mio dentista il caval donato gli fa schifo.
		-- Boris Makaresco