Torna indietro   Hardware Upgrade Forum > Software > Programmazione

iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
C'è tanta sostanza nel nuovo smartphone della Mela dedicato ai creator digitali. Nuovo telaio in alluminio, sistema di raffreddamento vapor chamber e tre fotocamere da 48 megapixel: non è un semplice smartphone, ma uno studio di produzione digitale on-the-go
Intel Panther Lake: i processori per i notebook del 2026
Intel Panther Lake: i processori per i notebook del 2026
Panther Lake è il nome in codice della prossima generazione di processori Intel Core Ultra, che vedremo al debutto da inizio 2026 nei notebook e nei sistemi desktop più compatti. Nuovi core, nuove GPU e soprattutto una struttura a tile che vede per la prima volta l'utilizzo della tecnologia produttiva Intel 18A: tanta potenza in più, ma senza perdere in efficienza
Intel Xeon 6+: è tempo di Clearwater Forest
Intel Xeon 6+: è tempo di Clearwater Forest
Intel ha annunciato la prossima generazione di processori Xeon dotati di E-Core, quelli per la massima efficienza energetica e densità di elaborazione. Grazie al processo produttivo Intel 18A, i core passano a un massimo di 288 per ogni socket, con aumento della potenza di calcolo e dell'efficienza complessiva.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-11-2009, 11:36   #1
$te
Senior Member
 
L'Avatar di $te
 
Iscritto dal: Aug 2006
Messaggi: 1262
[php]Form: vulnerabilità?

Slave...ultimamente sto ricevendo "attacchi" (non so se chiamarli tali) al mio sito, in cui ho un form contatto. In pratica mi aggiungono un pezzo di codice, ma, se non ricordo male, solo nei file non php (ieri nel file config.inc). Com'é possibile che accada? come fare per difendermi? Se qualcuno ha voglia di cercare di "attaccare" il mio sito, per poi dirmi le vulnerabilità, mi può mandare un mess in privato.

grazie mille!!!
$te è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2009, 13:26   #2
bottomap
Member
 
Iscritto dal: Feb 2005
Città: Prato
Messaggi: 149
Ciao,

Se stiamo parlando di una form mail, documentati sul concetto di mail-header injection:
http://en.wikipedia.org/wiki/E-mail_injection
http://www.damonkohler.com/2008/12/email-injection.html

Più in generale ripulisci attentamente tutti i parametri $_GET/$_POST prima di utilizzarli per formare uno qualsiasi dei parametri della mail.

Ciaociao
__________________
Venite a visitarci qui:http://www.bottomap.com
Bottomap is a proud Masterdrive.it moderator
bottomap è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2009, 16:31   #3
$te
Senior Member
 
L'Avatar di $te
 
Iscritto dal: Aug 2006
Messaggi: 1262
Quote:
Originariamente inviato da bottomap Guarda i messaggi
Ciao,
Più in generale ripulisci attentamente tutti i parametri $_GET/$_POST prima di utilizzarli per formare uno qualsiasi dei parametri della mail.
in che senso ripulire?
Sapresti postarmi un form "pulito"?
sono meglio i formailer?
grazie!
$te è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2009, 16:44   #4
bottomap
Member
 
Iscritto dal: Feb 2005
Città: Prato
Messaggi: 149
Ciao,

Il sito è quello in firma?

Se non si tratta di una mail-header injection (solitamente utilizzata sulle form mail), probabilmente hai un problema di XSS o di SQL-Injection.

In ogni caso alla base c'è sempre la mancata pulitura dei parametri in arrivo allo script (ed eventualmente l'uso - da evitare assolutamente a meno di non avere alternative - della register_globals ad on nel php.ini).

Il linguaggio php ti fornisce una serie di funzioni esplicitamente pensate per ripulire il codice prima di stamparlo a video o usarlo in una query (htmlentities, htmlspecialchars, stripslashes, mysql_real_escape_string).
Per usi più fini poi (ad esempio togliere cc: o \r\n dal testo di una mail) hai comunque tutta una serie di funzionalità che operano su stringhe (preg_replace, strstr, str_replace).

Ciaociao
__________________
Venite a visitarci qui:http://www.bottomap.com
Bottomap is a proud Masterdrive.it moderator
bottomap è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2009, 21:06   #5
BlackAuron
Member
 
Iscritto dal: May 2006
Messaggi: 86
Ho dato giusto una occhiata al tuo sito, e ti consiglio di contattare al più presto qualcuno che si occupi di web application security a livello professionale
Se ti serve,non appena avrò tempo, in PM posso inviarti la lista delle vulnerabilità che ho trovato facendo una analisi non troppo approfondita del tuo sito, ma credo che ti serva pure un aiuto per capire come tappare le falle.


PS: Se il tuo sito non è già stato compromesso, ritieniti molto fortunato ...
BlackAuron è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2009, 07:53   #6
$te
Senior Member
 
L'Avatar di $te
 
Iscritto dal: Aug 2006
Messaggi: 1262
Comunque con il form, possono solo sfruttare la funzione mail() per fare dello spam ? perché il problema é proprio che mettevano del codice maligno nei miei files!!!
$te è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2009, 08:46   #7
vhost87
Senior Member
 
L'Avatar di vhost87
 
Iscritto dal: Apr 2008
Città: Varese
Messaggi: 406
Quote:
Originariamente inviato da BlackAuron Guarda i messaggi
Ho dato giusto una occhiata al tuo sito, e ti consiglio di contattare al più presto qualcuno che si occupi di web application security a livello professionale
Se ti serve,non appena avrò tempo, in PM posso inviarti la lista delle vulnerabilità che ho trovato facendo una analisi non troppo approfondita del tuo sito, ma credo che ti serva pure un aiuto per capire come tappare le falle.


PS: Se il tuo sito non è già stato compromesso, ritieniti molto fortunato ...
Oddio dai, non penso generi una mole cosi impressionante di traffico.
__________________
IT Developer at Hardware Upgrade S.r.l.
self.love(this.me());
vhost87 è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2009, 08:50   #8
BlackAuron
Member
 
Iscritto dal: May 2006
Messaggi: 86
il problema non è solo la mail, ci sono falle ben peggiori ... che ti ho segnalato in PM

@michele : ha quell'indirizzo in firma in un forum piuttosto popolato : chiunque sia interessato a danneggiarlo personalmente, potrebbe farlo senza troppi problemi, una RFI e diverse XSS ( e probabilmente qualche SQL injection point ) non sono proprio vulnerabilità da nulla.
Tra l'altro, se i permessi del server sono settati male, rischia pure un mass deface di tutti i siti hostati ... ma si, forse sono catastrofista

Ultima modifica di BlackAuron : 26-11-2009 alle 08:53.
BlackAuron è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2009, 09:09   #9
bottomap
Member
 
Iscritto dal: Feb 2005
Città: Prato
Messaggi: 149
Ciao,

Come dice BlackAuron non sono proprio cosette da niente.

La mail-header injection è verificata (come detto via PM - ma a parte agevolare gli spammer non può portare ad osservare quanto hai descritto), confermo le XSS (l'RFI non l'ho individuato ma sicuramente ci sarà).
Confermo pure l'SQL-injection (o almeno la possibilità) vista una delle XSS che mi informa che "la query è errata" e di controllarne la sintassi.

Per quanto riguarda la modifica fisica di file .inc o .js come $te faceva notare, necessariamente il malintenzionato è riuscito ad ottenere le credenziali per l'accesso o ha installato una shell (E se c'è una RFI la cosa è probabile).

Alla base di tutto, in ogni caso, ci sono sempre input esterni non filtrati, che sia mail-header injection, XSS, RFI, SQL-injection. Tutti gli spezzoni di codice che coinvolgono array autoglobali ($_POST e $_GET in primo luogo) vanno filtrati accuratamente...

Ciaociao
__________________
Venite a visitarci qui:http://www.bottomap.com
Bottomap is a proud Masterdrive.it moderator

Ultima modifica di bottomap : 26-11-2009 alle 09:11.
bottomap è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2009, 09:40   #10
BlackAuron
Member
 
Iscritto dal: May 2006
Messaggi: 86
La RFI è confermata, testata e funzionante, e, come dettoin pm, credo che quello sia il problema maggiore: tramite essa, uno non solo ha accesso a tutti i file che hosti (quindi pure i files di configurazione, dai quali uno può ottenere le tue credenziali di accesso e i dati per accedere al db), ma li può pure spostare, modificare, ed eventualmente fare l'upload di qualunque cosa.
Come già suggerito, la soluzione è unica: controlla ogni variabile che l'utente può modificare, e controlla che i numeri sian numeri, gli URL siano URL, le immagini immagini, and so on.
BlackAuron è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2009, 10:27   #11
$te
Senior Member
 
L'Avatar di $te
 
Iscritto dal: Aug 2006
Messaggi: 1262
Quote:
Originariamente inviato da BlackAuron Guarda i messaggi
La RFI è confermata, testata e funzionante, e, come dettoin pm, credo che quello sia il problema maggiore: tramite essa, uno non solo ha accesso a tutti i file che hosti (quindi pure i files di configurazione, dai quali uno può ottenere le tue credenziali di accesso e i dati per accedere al db), ma li può pure spostare, modificare, ed eventualmente fare l'upload di qualunque cosa.
Come già suggerito, la soluzione è unica: controlla ogni variabile che l'utente può modificare, e controlla che i numeri sian numeri, gli URL siano URL, le immagini immagini, and so on.
puoi farmi un es di come puoi "entrare" nel mio sito pf?(magari in ptv). QUindi in pratica, ogni volta che uso delle variabili, come ad es nella pag: ?servizi/campi.php&img=, come faccio? devo controllare che img sia uguale ad un numero che é predefinito?(quindi se ho 20 immagini..il numero non puo che essere tra 0 e 20)
$te è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2009, 10:37   #12
bottomap
Member
 
Iscritto dal: Feb 2005
Città: Prato
Messaggi: 149
Ciao,

Non tanto delle variabili in senso stretto quanto di tutta la roba che proviene dall'esterno ... nella porzione di url che hai postato ricevi un parametro in $_GET['img'].

Devi assicurarti prima di tutto che sia un numero, poi eventualmente verificare, se tale numero ha dei limiti superiore e inferiore, che sia un numero nel range che ti aspetti.

Per testare se una stringa contiene un numero puoi sfruttare la funzione is_numeric() di php che ti ritorna un booleano true o false. La is_numeric accetta coem valido anche un simbolo di segno (+-) e il punto decimale (.).
In alternativa la intval() ti restituisce il valore numerico contenuto in una stringa (0 se la stringa non può essere interpretata come numero).
Ancora in alternativa puoi ricorrere ad una trim() con un parametro opzionale. trim(stringa,'0123456789') toglie di mezzo tutto ciò che non è una cifra dalla stringa.

Ciaociao
__________________
Venite a visitarci qui:http://www.bottomap.com
Bottomap is a proud Masterdrive.it moderator

Ultima modifica di bottomap : 26-11-2009 alle 10:40.
bottomap è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2009, 10:44   #13
$te
Senior Member
 
L'Avatar di $te
 
Iscritto dal: Aug 2006
Messaggi: 1262
Quote:
Originariamente inviato da bottomap Guarda i messaggi
Ciao,

Non tanto delle variabili in senso stretto quanto di tutta la roba che proviene dall'esterno ... nella porzione di url che hai postato ricevi un parametro in $_GET['img'].

Devi assicurarti prima di tutto che sia un numero, poi eventualmente verificare, se tale numero ha dei limiti superiore e inferiore, che sia un numero nel range che ti aspetti.

Per testare se una stringa contiene un numero puoi sfruttare la funzione is_numeric() di php che ti ritorna un booleano true o false. La is_numeric accetta coem valido anche un simbolo di segno (+-) e il punto decimale (.).
In alternativa la intval() ti restituisce il valore numerico contenuto in una stringa (0 se la stringa non può essere interpretata come numero).
Ancora in alternativa puoi ricorrere ad una trim() con un parametro opzionale. trim(stringa,'0123456789') toglie di mezzo tutto ciò che non è una cifra dalla stringa.

Ciaociao
ok grazie!!! pero nel caso di un testo...la cosa si fa molto piu dura vero? (anche ad es in una iscrizione) Nel caso in cui m'aspetto, ad es, un campo "Nome", limitando il numero di caratteri (ad es a 15), limito tanto questi attacchi? o dal momento che uno sa che esiste questa limitazione...riescono a raggiararla?
$te è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2009, 10:55   #14
BlackAuron
Member
 
Iscritto dal: May 2006
Messaggi: 86
Mah... Relativamente: se vuoi un nome, controlla che non contenga apici o caratteri speciali, se vuoi una mail controlla che il formato sia valido, e via dicendo.
Ci sono infinite funzioni php per 'aggiustare' input corrotti, vedi mysql real escape o simili. Sta a te capire cosa puoi accettare e cosa no.
BlackAuron è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2009, 11:00   #15
bottomap
Member
 
Iscritto dal: Feb 2005
Città: Prato
Messaggi: 149
Ciao,

Nel caso del testo "libero", in genere si cerca di filtrare un poco i possibili contenuti.

In primo luogo se quello che ti aspetti ha una forma specifica (un url, un numero di telefono, un indirizzo) si può usare un'espressione regolare per validare quello che viene immesso.

In secondo luogo, per evitare che quel campo contenga codice html (che si inietterebbe nella pagina) venga riusato direttamente sulla stessa, si passa il tutto almeno attraverso la funzione htmlentities() (ma si può anche bloccare proprio l'invio se si presentano tag html - anche in questo caso un'espressione regolare può aiutare), che impedisce l'iniezione di codice html.

Per la RFI, cerca se possibile di non usare require() o include() sul valore di una variabile o di usare la variabile come src o href di un qualsiasi tag html. Soprattutto se la variabile proviene da una richiesta POST o GET.
Se proprio devi (ma in generale non è obbligatorio), puoi cercare di stabilire:
- una politica per il nome del file (la stringa deve avere certe caratteristiche specifiche) in modo da poterne verificare la correttezza.
- una politica di path (vietati i caratteri di slash / \ ed eventualmente di protocollo http:, ftp:, file:, ). Il file è relativo. Il path, se necessario, lo generi tu in testa, dall'esterno non dovrebbe mai arrivare.
- una politica per i caratteri speciali (vieti %00, \0, \n, \r e/o ogni cosa che non rientra in un insieme di caratteri applicabili per la natura del dato in input (anche in questo caso una espressione regolare può aiutare).

Edit: Ooops, crossposting...

Ciaociao
__________________
Venite a visitarci qui:http://www.bottomap.com
Bottomap is a proud Masterdrive.it moderator

Ultima modifica di bottomap : 26-11-2009 alle 11:21.
bottomap è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2009, 11:06   #16
vhost87
Senior Member
 
L'Avatar di vhost87
 
Iscritto dal: Apr 2008
Città: Varese
Messaggi: 406
Quote:
Originariamente inviato da BlackAuron Guarda i messaggi
il problema non è solo la mail, ci sono falle ben peggiori ... che ti ho segnalato in PM

@michele : ha quell'indirizzo in firma in un forum piuttosto popolato : chiunque sia interessato a danneggiarlo personalmente, potrebbe farlo senza troppi problemi, una RFI e diverse XSS ( e probabilmente qualche SQL injection point ) non sono proprio vulnerabilità da nulla.
Tra l'altro, se i permessi del server sono settati male, rischia pure un mass deface di tutti i siti hostati ... ma si, forse sono catastrofista
Un pò dai
Comunque concordo con te sulle vulnerabilità.

EDIT: non ci avevo fatto caso che il sito incriminato fosse in firma, al mattino presto connetto a fatica
__________________
IT Developer at Hardware Upgrade S.r.l.
self.love(this.me());

Ultima modifica di vhost87 : 26-11-2009 alle 11:10.
vhost87 è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2009, 21:49   #17
$te
Senior Member
 
L'Avatar di $te
 
Iscritto dal: Aug 2006
Messaggi: 1262
ma, dato che penso proprio sia un problema comune e diffuso, non esiste una guida o un tool con su gia tutte le indicazioni (consigli e soluzioni), che possano rendermi la vita piu facile...ma soprattutto sicura?....so che chiedo tanto...
$te è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2009, 22:42   #18
BlackAuron
Member
 
Iscritto dal: May 2006
Messaggi: 86
http://www.owasp.org/images/5/56/OWA...g_Guide_v3.pdf
è LA guida relativa alla web application security ... c'è da vedere se hai tempo e voglia di studiartela per bene.
BlackAuron è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2009, 22:49   #19
$te
Senior Member
 
L'Avatar di $te
 
Iscritto dal: Aug 2006
Messaggi: 1262
Quote:
Originariamente inviato da BlackAuron Guarda i messaggi
http://www.owasp.org/images/5/56/OWA...g_Guide_v3.pdf
è LA guida relativa alla web application security ... c'è da vedere se hai tempo e voglia di studiartela per bene.
e no appunto...ne tempo...ne voglia:P ma pensavo a qlc di piu semplice (in cui ti fanno es di codice per "tutte" le situazioni, form contatto, ecc).
$te è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2009, 22:55   #20
BlackAuron
Member
 
Iscritto dal: May 2006
Messaggi: 86
pretendi troppo. C'è gente che come lavoro perfeziona la sicurezza di siti web e determina la soluzioni a potenziali falle, se esistesse una guida di quel tipo sarebbe troppo facile tra l'altro, la guida che ti ho postato è praticamente la più breve a riguardo che puoi trovare.
BlackAuron è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile iPhone 17 Pro: più di uno smartphone. &Eg...
Intel Panther Lake: i processori per i notebook del 2026 Intel Panther Lake: i processori per i notebook ...
Intel Xeon 6+: è tempo di Clearwater Forest Intel Xeon 6+: è tempo di Clearwater Fore...
4K a 160Hz o Full HD a 320Hz? Titan Army P2712V, a un prezzo molto basso 4K a 160Hz o Full HD a 320Hz? Titan Army P2712V,...
Recensione Google Pixel Watch 4: basta sollevarlo e si ha Gemini sempre al polso Recensione Google Pixel Watch 4: basta sollevarl...
Le sonde spaziali ESA ExoMars e Mars Exp...
Roscosmos: static fire per i propulsori ...
Alcune partite NBA saranno trasmesse in ...
Intel Core 13000 e 14000 aumentano uffic...
Gemini sta per arrivare in Google Maps: ...
2 minuti per vedere le 27 offerte imperd...
Ray-Ban Meta Display: tecnologia sorpren...
Un mini PC a prezzo stracciato, non cerc...
Al via i coupon nascosti di ottobre: qua...
Ferrari Elettrica si aggiorna solo in of...
Doppio sconto sugli smartphone top Xiaom...
Samsung è sempre più prota...
ChatGPT ha pregiudizi politici? Ecco cos...
Un solo iPhone rubato ha portato alla sc...
Xiaomi 17 Ultra sta arrivando: ecco come...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 04:42.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v