Nytro Posted May 18, 2008 Report Posted May 18, 2008 <?php// ----------- Mini Download CMS ------------// --------------- © Nytro 2008 ---------------// --------- http://www.rstcenter.com ----------?>Download :- http://rapidshare.com/files/115750755/Mini_Download_CMS.rarDownload Screenshots :- http://rapidshare.com/files/115752393/Screenshots.rarScreenshot :Primul meu script , l-am facut pentru a participa la un concurs . E pentru download si are 3 categorii de download : muzica , software , video .Facilitati :- sistem de logare/inregistrare- utilizatorii au un mic profil si un panou de control de unde pot modifica profilul si parola- un simplu motor de cautare- administratorii pot adauga/edita/sterge categorii ale celor 3 categorii de download - administratorii pot edita useri , ii pot gasi dupa ID sau dupa nume- administratorii pot adauga/edita/sterge descarcari ale categoriilor create de ei- o lista cu membri- o lista cu statistici- descarcarile sunt impartite in pagini , 5 pe paginaAvantajul ? Toate se fac direct de pe site , fara a fi nevoie de modificare unor fisiere etc. Fisiere :- /images/ - Folderul in care se afla cateva imagini , grafica e foarte simpla , a durat 5 minute sa o fac , sunt praf in Photoshop .- admin.php - Tot ce tine de panoul administratorului : editare categorii , useri , downloads ...- cauta.php - Functia de cautare- config.php - Fisierul de configurare : datele de la baza de date- cpanel.php - Panoul userului- descarcari.php - Tot ce tine de descarcari- despre.php - O simpla pagina cu cateva informatii- eroare.php - Pagina de erori : in caz de eroare , esti redirectionat pe aceasta pagina unde vezi ce eroare ai intampinat- index.php - Pagina de index : aparent ea contine totul ( daca te uiti la URL ) de fapt include pagini in functie de ?pagina= .- inregistrare.php - Pagina de inregistrare- instalare.php - Fisierul de instalare- logare.php - Fisierul de logare- logout.php - Fisierul pentru delogare- membri.php - Lista membrilor- menu2.php - Meniul cu descarcarile- menu.php - Meniul userului ( daca e logat ) sau pagina de logare daca nu e logat- profil.php - Fisierul pentru profilul userilor- start.php - Simpla pagina de start - statistici.php - Pagina pentru statisticiInstalare :1) Deschideti config.php si completati datele de la baza de date $db_host="localhost"; $db_user="root"; $db_password="pass"; $db_name="name";2) Rulati instalare.php pentru crearea tabelelor .3) Asta e totSoftware folosit :- Notepad++ : 90% - Scriptul- Adobe Photoshop : 5% - "Grafica"- Web Page Maker : 5% - Asezarea codului in graficaTehnologii folosite :- PHP- MySql- HTML - mai putinLinii de cod : 1300 cu tot cu linii goale , aproximativ 1000 fara .Multumiri Katmai pentru ajutor si pentru ca si-a batut capul cu mine .Astept probleme , erori si in principal vulnerabilitati . Il instalez pe un host free si revin cu un edit . Quote
Nytro Posted May 18, 2008 Author Report Posted May 18, 2008 Instalare :1) Deschideti config.php si completati datele de la baza de date $db_host="localhost"; $db_user="root"; $db_password="pass"; $db_name="name";2) Rulati instalare.php pentru crearea tabelelor .3) Asta e totChiar esti batut in cap . Quote
amprenta Posted May 18, 2008 Report Posted May 18, 2008 La prima vedere ,fara a instala : 1 . Ti parolele in plain text in baza de date . Mai bine sa faci un hash ceva .2 . La creearea cookie-urilor nu faci un session id ceva cum ii la phpbb 'sid' astfel ii de ajuns sa editez Permisiune = 3 si am drepturi de admin. Quote
Nytro Posted May 18, 2008 Author Report Posted May 18, 2008 Parolele nu le criptez pentru a putea fi vazute de administrator .A , am uitat sa spun de cookie-uri . Da , daca setezi permisiunea in 3 ai drepturi de admin . Am vrut sa folosesc sesiuni , dar am avut probleme si am ales cookie-uri . Dupa ce am terminat scrpitul mi-am dat seama ... Quote
CODEX Posted May 18, 2008 Report Posted May 18, 2008 Imi pot modifica statusul ... asta e putin aiurea daca uiseru isi pune adminstrator la status .doar sa se dea smecher sau stiu eu ! Quote
Nytro Posted May 18, 2008 Author Report Posted May 18, 2008 Pui Administrator , dar nu ai permisiuni ... Ca sa ai permisiune seteaza valoarea variabilei cookie din 1 in 3 Quote
zamolx3 Posted May 18, 2008 Report Posted May 18, 2008 Ai niste XSS-uri. Nimic grav pentru ca nu se poate exploata decat in situatii foarte speciale dar oricum.Folosesti $_COOKIE['nume'] fara sanitizare in mai multe locuri.De ex. in index.php linia 77print "Bine ai venit [b]" . $_COOKIE['nume'] . "[/b]"; Quote
Nytro Posted May 18, 2008 Author Report Posted May 18, 2008 E securizat inainte de a fi introdus in baza de date http://img519.imageshack.us/img519/6835/snap0003jp2.jpghttp://img232.imageshack.us/img232/6614/snap0004sq8.jpg Quote
zamolx3 Posted May 18, 2008 Report Posted May 18, 2008 Ah, si am mai gasit o problema. Asta e cam nashpa.Orice utilizator poate sa modifice profilele la toti ceilalti ulitizatori, chiar si la administator. Poti sa modifici nume, mail, status.Asta din cauza ca id-ul utlizatorului este stocat in cookie si eu pot sa setez ce id vreau. Fisierul cpanel.php, linia 30 $mail=secure($_POST['mail']); $status=secure($_POST['status']); if(empty($nume) OR empty($mail) OR empty($status)) header("Location: eroare.php?nume=camp_necompletat"); $query="UPDATE vl_utilizatori SET nume='".$nume."',mail='".$mail."',status='".$status."' WHERE id='".$_COOKIE['id']."'"; $int=mysql_query($query);De ex. aici aveam id-ul 167, si am pus 1 si am modificat datele admin-ului.Morala este sa nu salvezi nimic important in cookie.Cookie-ul se foloseste doar ca identificator de sesiune.Stochezi totul in sesiune. Quote
zamolx3 Posted May 18, 2008 Report Posted May 18, 2008 E securizat inainte de a fi introdus in baza de date http://img519.imageshack.us/img519/6835/snap0003jp2.jpghttp://img232.imageshack.us/img232/6614/snap0004sq8.jpgProbabil ca e securizat inainte sa fie introdus in baza de date dar este afisat inainte sa fie introdus in db. Oricum, aia este doar o problema teoretica, nu poate fi exploatata usor. Quote
Nytro Posted May 19, 2008 Author Report Posted May 19, 2008 Am spus ca are mari probleme cu cookie . Nu e nevoie sa schimbi id in 1 , schimba permiiune in 3 si ai drepturi full de admin . inregistrare.php : $nume=secure($_POST['nume']);logare.php : setcookie('nume',secure($date['nume']),time()+3600);Si am uitat de "Bine ai venit ... " ca il mai "securizam" o dataMersi Quote
Guest Kenpachi Posted May 19, 2008 Report Posted May 19, 2008 ar trebui sa luati exemplu offtoicarilor. Quote
tw8 Posted May 19, 2008 Report Posted May 19, 2008 E securizat inainte de a fi introdus in baza de date Nu conteaza, poate fi exploatat (ca si multe altele care se bazeaza tot pe cookie)Oricum ii plin de bug-uri: pe langa faptul ca pot fi admin doar pentru ca vreau, exista o groaza de XSS-uri si SQLI-uri. Iti las placerea sa le descoperi, pentru un guru ca tine cred ca 5 minute o sa fie de ajuns.Apropo, asta e o problema minora (ma refer la inconsecventa). Oricum, da o raida pe aici si aici (sper sa intelegi la ce ma refer). Quote
Nytro Posted May 19, 2008 Author Report Posted May 19, 2008 Astept SQL-urile si XSS-urile . De cookie stiu , de acum folosesc sesiuni . Oricum e primul meu script , dar tu nu intelegi . Quote
tw8 Posted May 19, 2008 Report Posted May 19, 2008 Astept SQL-urile si XSS-urile .XSS-uri: print "ID : ".$_COOKIE['id']."";... print "Nume : <input name=nume type=text value=".$_COOKIE['nume'].">"; print "Mail : <input name=mail type=text value=".$_COOKIE['mail'].">"; print "Status : <input type=text name=status value=".$_COOKIE['status'].">";...SQLI:$que="SELECT parola FROM vl_utilizatori WHERE id='".$_COOKIE['id']."'";... $query="UPDATE vl_utilizatori SET parola='".$parola_n."' WHERE id='".$_COOKIE['id']."'";Toate provin de la Cookie-uri si de la nesatanizarea lor inainte de folosire.Astea sunt in cpanel.php, dar mai sunt si prin alte parti din cate am vazut(nu am notat ).Oricum, cel mai bine ar fi sa il urci pe un host free si sa il pui la challenge-uri (dupa ce repari faza cu logarea ca admin).Oricum e primul meu script , dar tu nu intelegi .Scuze, nu am vrut sa iti tai avantul. Bafta si il asteptam si pe urmatorul atunci . Quote
zamolx3 Posted May 19, 2008 Report Posted May 19, 2008 Da, clar. Asa e la inceput. Pentru 16 ani e f. bine. Quote
Nytro Posted May 19, 2008 Author Report Posted May 19, 2008 Daca te uitai la pozele de pe aici ... http://img175.imageshack.us/img175/7708/snap0005qh9.jpghttp://img519.imageshack.us/img519/6835/snap0003jp2.jpghttp://img232.imageshack.us/img232/6614/snap0004sq8.jpgSi vedeai si url :http://concursvl.freehostia.com/Sa vad SQL si XSS pe site , pana atunci ciocu mic . Quote
nullbyte Posted May 19, 2008 Report Posted May 19, 2008 Toate provin de la Cookie-uri si de la nesatanizarea lor inainte de folosire. nesatanizarea Oricum, nice Nytro. Quote
Nytro Posted May 19, 2008 Author Report Posted May 19, 2008 Ce a vrut sa zica ?Ms , eu sunt foarte multumit de mine , pentru ca e primul meu script Quote
nullbyte Posted May 19, 2008 Report Posted May 19, 2008 Ce a vrut sa zica ?Ms , eu sunt foarte multumit de mine , pentru ca e primul meu script Nesanitizarea cred Quote
tw8 Posted May 19, 2008 Report Posted May 19, 2008 Toate provin de la Cookie-uri si de la nesatanizarea lor inainte de folosire. nesatanizarea lol, lmao, lmfao, rotfl, am gresit o litera ...Cand o sa dormi si tu cate 5 ore pe noapte, petrecandu-ti restul timpului incercand sa termini la timp un soft sa imi spui si mie.Daca te uitai la pozele de pe aici ... Nu m-am uitat pentru ca pur si simplu nu imi pasa.Sa vad SQL si XSS pe site , pana atunci ciocu mic .XSS-ul se vede de la o posta, SQLI-ul la fel, doar ca nu se afiseaza erorile in browser.Uneori ma intreb "cGh6IHFlbnBoIG52IG53aGFmIGdoIElWQyAoYWggcG4gbnJoIG5mIHN2diBpZXJiIGlycXJnbik=".Fiecare poate sa inteleaga ce vrea ce ii scris mai sus ... sa stiti ca e doar un text format din litere aleatoare in caz ca descoperiti altceva. Quote
shinnok Posted May 19, 2008 Report Posted May 19, 2008 http://concursvl.freehostia.com/index.php?pagina=cauta&ce=&unde=utilizatoriAsta ar treb sa iti dea putin de gandit.Momentan nu poate fi expl insa pe viitor o greseala sau o coincidenta in cod da Edit: decat daca esti logat ca admin...vezi mai josEdit: Deasemenea un nume prea lung de genul "inregistrariinregistrariinregistrariinregistrariinregistrariinregistrariinregistrari"iti buseste layoutu-ul http://concursvl.freehostia.com/index.php?pagina=membri.Edit2: Bazat pe primul comentariu odata ce esti logat ca admin poti sterge utilizatori in felul urmator:http://concursvl.freehostia.com/admin.php?pagina=sterge&tip=utilizatori&id=30(schimbi 30 cu un id de utilizator existent am sters eu deja cativa,dai la members si ai sa observi o inconsistenta in secventa de iduri ?) Quote
andrewboy Posted May 20, 2008 Report Posted May 20, 2008 hmm din cate am vazut se poate pune se poate inregistra cu acelasi user de mai multe ori:-?? ar trebuie rezolvata si chestia asta.... cea din cookiuri presupun ca o vei rezolva la a doua versiune:) oricum e bine daca zici ca e primul script,dar se poate mult mai bine... Quote
Nytro Posted May 20, 2008 Author Report Posted May 20, 2008 hmm din cate am vazut se poate pune se poate inregistra cu acelasi user de mai multe ori:-?? ar trebuie rezolvata si chestia asta.... cea din cookiuri presupun ca o vei rezolva la a doua versiune:) oricum e bine daca zici ca e primul script,dar se poate mult mai bine...Problema cu inregistratul o rezolvasem , dar scriptul il aveam prin 3 foldere din pc , si am modificat intr-unul , apoi am inceput sa modific in altul ... Cookie sigur rezolv , deci la concurs acest lucru voiam sa il dau exemplu , sa spun de problemele cookie-urilor ... O sa rezolv mai multe in al doilea script .shinnok : Am facut mai multe pagini in graba , ca sa fie . Membri e una din ele , stiu ca arata urat toate in jos pur si simplu nu am mai avut timp .Mi se buseste layoutul pentru ca nu am stiut cum sa codez . Am pus fundalul in Web Page Maker si am pus cod pe fundal . Am uitat sa pun sterge user in Admin Panel .tw8 : Da-mi un exemplu de SQL , XSS , ceva ...And thanx all . Mai am multe de invatat ... Quote