Newsgroup: it.comp.sicurezza.varie
Titolo: Sicurezza siti dinamici, php & C

Premesso che ciň che sto per descrivere ai piů smaliziati č noto, ma 
magari puň essere utile ai meno addetti ..
Spesso per capire come gira il fumo dalle altre parti cerco di testare 
possibili vulnerabilitŕ specie in ambienti a me consoni (php ad 
esempio).
Questa sera mi loggo su un sito molto noto .. dove ho un mio account.
per ragioni di privacy non dirň di cosa tratta e tantomeno altro, i 
gestori sono giŕ stati avvisati da me.
Si tratta di questo..
Loggandosi si apre una sessione che mantiene attivi user e pass per la 
durata in cui si permane nel sito (normale dire fino a qui..)[2] Al 
LogIn viene salvato in un cookie un ID che rappresenta numeracamente la 
mia coppia user  e pass (in pratica non vengono salvate user e pass, ma 
un indice numerico che trova una corrispondenza sul loro DB con le mie 
credenziali).
Esco dal browser, rientro e magicamente mi ritrovo loggato (prima mezza 
bestemmia)[1] e posso riaccedere senza ulteriori conferme ad esempio, 
al carrello acquisti e/o ad altre visualizzazioni che riguardano il mio 
account.
Questo giŕ di per se non lo trovo molto carino.
Poi comincio a pensare... Dove e come salverŕ questa sessione se non in 
un cookie? Scoperta dell'America direte voi. Eh no!
Apro il cookie e trovo un numerino di sole 5 cifre, non estrapolato da 
un md5, sh1 o qualsiasi altro si volglia codifica, ma un semplice 
numero.
Tutto in un baleno mi torna chiaro, hanno associato quel numero (ID) 
alla mia coppia login/pass sul loro server senza che vi siano altri 
controlli di nessun genere ..
Il piccolo irrilevante problema nasce quando cambio, ad esempio, 
l'ultima cifra di quel numerico e riapro il browser ..
magicamente mi appare una sessione loggata di un altro utente, con 
tanto di possibilitŕ di fare acquisti etc etc ...
Qui la mezza bestemmia essendo loro cliente č diventata una bestemmia 
da culto!
I furboni non hanno nemmeno pensato di associare a quell'id almeno una
stringa irreversibile o quantomeno un algoritmo un pň piů complesso ...
Questo per dire (lungi da me la perfezione) che si possono scrivere i 
migliori browser del mondo, ma se poi si lascia maldestramente il sito 
in mano ad un programmatore poco avvezzo ai problemi di sicurezza, il 
risultato č vano ..
[1] Non tanto per aver ricordato i miei dati, quanto per non avermi 
richiesto una conferma almeno con la password, ma tantč ..
[2] session_start() per intenderci.
-- 
Ciao, Dmitry
I've a dream... bring usenet to every family 

 risultato è vano ..
Nel 90% dei casi i siti web non sono scritti da programmatori, ma sono
scritti da "web developers" che altro non sono che grafici un po' più
competenti. La situazione è analoga per esempio quando si parla di
programmi per commercialisti, che paiono scritti da commercialisti
smanettoni e per tantissimo altro software.
Poi c'è anche il caso in cui il programmatore installa l'ultima strafica
applicazione Web che serve per trattare dati sensibili, che si basa su
tomcat, che dovrà essere aperta al mondo su internet e che ha la coppia
admin/admin come utente/password di amministrazione dell'applicativo ed
anche come manager di tomcat.
E può accadere anche che si offenda e che si arrabbi perché tu, povero
cretino di un sistemista, gli hai detto che ti rifiuti di aprire il
firewall finché quelle credenziali non verranno cambiate. Già gli avevo
fatto un torto enorme rifiutandomi di installare samba su un web server
in DMZ per la copia dei files, poverino.
Io non mi stupisco più di nulla.
-- 
Flavio Visentin
Membro del CICAP
Comitato Italiano per il Controllo delle Affermazioni di P4

 Io non mi stupisco più di nulla.
infatti, quando mi chiameranno oggi per chiedermi chiarimenti 
sicuramente mi diranno: "ma le come ha fatto per trovare questo
errore?" Quasi che debbano difendersi da me e non dal loro 
programmatore :) rotfl. Il fatto è che su quel sito ci compro 
abitualmente anche io e mai avrei immaginato che bastasse così poco per 
metterlo in crisi.
L'anno scorso avevo segnalato un altro problema che riguardava la 
gestione degli errori di un altro sito (sempre con php). Non appena vi 
era un errore di tipo FATAL apparivano a video le Dirs dei DB. A quel 
putno il lavoro per un hacking sarebbe stato cmq più facile.
pensi che mi abbiano ringraziato che li ho avvisati? figurati ..


pensi che mi abbiano ringraziato che li ho avvisati? figurati ..
Eh. A me su un sito cosi' m'han fatto fare una "spesa" gratis;
ma era altra gente, dei veri signori (inglesi, non per di'...)
Pero' su un diverso sito, a cui segnalai essere infetti (me ne
ero accorto DOPO aver inviato i dati della CC!), mi fecero una
rospata galattica. Forwardai tutto all'FBI, dicendo "Guardate,
di sicuro qualche cittadino merigano c'e' rimasto di mezzo, il
server e' in California". Mi scrisse poi uno dell'FBI, dicendo
che avevano trovato il server disinfettato, mappero' i gestori
non erano stati per nulla rudi, anzi con LUI erano stati di un
gentile e collaborativo davvero squisito (lol).
Ce ne vuole di tutte le razze, per fare un mondo :-(
Leonardo
-- 
Geordie - he's a man, there's little doot about't,
He's done all he can, wha' can do withoot't?
Doon there cam a blade, linkin' like me lordie,
He wad drive a trade, a' the loom of Geordie.

 Leonardo
ciauz
