[ kelja @ 08.07.2007. 23:46 ] @
Pozdrav!
Na jednom poznatom stranom php forumu postoji sekcija u kojoj je moguce sajt(u beta fazi-NE bih se usudio da ima dam link do sajta koji radi!!!) dati na milost i nemilost deci hakerima, da ga oni "istestiraju", naravno sve u svrhu ucenja... :)

E sad, za jedno pola sata su mi klinci(pretpostavljam da su klinci!)skoro rasturili sajt (http://www.sinisa.milicevici.com/real_estate/) .Zakrpio sam vecinu rupa, ali neke su ostale:

Negde prolazi xss , a nisam siguran kako i gde - izgleda da nije dovoljno odraditi samo strip_tags...Imam jednu veliku formu ali sam ubedjen da su sva polja zasticena...

Evo jos nekoliko zanimljivih napomena koje sam od 'testera' dobio:
There is Full Path Disclosure if you set PHPSESSID in the cookie to an invalid value.

Nesto sam petljao oko kukija, menjao mu sadrzaj, ali se onda jednostavno kad probam da se ulogujem meni ne desi nista, kako su oni dobili greske???
Poslao mi je sreenshot sa greskama i full putanjam pride..
Kako ovo spreciti?
The id parameter in /real_estate/details.php is vulnerable to XSS.

Kako ovo otkloniti???

Uglavnom, bio sam ubedjen da nema toliko rupa, ali...

Pozdrav!


[ mb_sa @ 09.07.2007. 07:26 ] @
XSS
strip_tags() ti nece nista uraditi sa bilo kojim tipom navodnika (quotes) ili sa znakom ampersand tako da ti je najpametnije
stip_tags() funkciju korstiti sa htmlspecialchars(), mislim da bi to trebalo biti dovoljno!

Full path disclosure
Oni su dobili greske unošenjem sadrzaja u cookie koji je bio formata koji je narusio rad skripte. Osiguraj da skripta moze primite sadrzaj iz cookie-a samo POTREBNOG FORMATA. Ako je to PHPSESSID, onda treba da omogucs da skripta samop primi brojeve, slova i da duzina bude potreban broj karaktera!

Ja sam ti otkrio moguci PHPSESSID session fixation na /real_estate/members!

Progoglaj malo o tome (kako to napadac moze iskorstiti), a jedno od najjednostavnijih rjesenja je:
Code:
ini_set(“session.use_only_cookies”, 1);
session_start();

koji ce osigirati da svi session IDs koji budue proslijeđeni preko GETa ili POSTa budu ignorisani, tj. forsirace cookies za trnasport session id-a!

Pozdrav,
mb_sa
[ kelja @ 09.07.2007. 09:29 ] @
@mb_sa ,
mnogo ti hvala!
Evo sad sam video da je dovoljno JEDNO polje ostaviti nezasticeno pa da naprave haos.
Snimio sam stranicu iz php-MyAdmina pa cu pogledati gde su tacno rupe.
A za PHPSESSID-session-fixation- HVALA MNOGO!!!
[ sale83 @ 09.07.2007. 10:33 ] @
Sem gore navedenog imas Full path disclosure imas i ovde:

http://www.sinisa.milicevici.com/real_estate/details.php?id[]=1
http://www.sinisa.milicevici.com/real_estate/estate.php?page[]=0

Dalje mrzi me da se ulogujem tj registrujem.

AKo imas neki test account posalji na PP pa cu ti pogledati aplikaciju....


Poz
sale
[ Ivan.Markovic @ 09.07.2007. 10:49 ] @
Nisam ulazio u dubinu, primetio sam jos da contact forme prihvataju "opasne" karaktere sto znaci da verovatno mogu da se koriste za spam ... Ukoliko zelis detaljno testiranje poseti link u potpisu ;)
[ kelja @ 09.07.2007. 12:33 ] @
Pozdrav svima,
hvala na spremnosti za testiranje!
Sigurnost je uvek aktuelna tema, izgleda.
@sale83,
sad je sredjeno, ali svakako cu ti poslati detalje na PP pa ako imas vremena mozes se poigrati sa tim.
@Ivan.Markovic

Hvala na zapazanju, ali zapravo imam funkciju koja bi trebalo da spreci unos 'opasnih' karaktera u formu, tako da mislim da se ipak ne mogu koristiti za spam.
A hvala i na ponudi, kad jednom budem napravio ozbiljniju aplikaciju, svakako cu posetiti link. :)

Btw, nekoliko polja u formi za unos novih podataka sam ostavio nezasticenim... sad sam sredio (valjda)