Jump to content
Nytro

[RST] Mini Download CMS by Nytro

Recommended Posts

<?php

// ----------- Mini Download CMS ------------

// --------------- © Nytro 2008 ---------------

// --------- http://www.rstcenter.com ----------

?>

Download :

- http://rapidshare.com/files/115750755/Mini_Download_CMS.rar

Download Screenshots :

- http://rapidshare.com/files/115752393/Screenshots.rar

Screenshot :

snap0010xd9.jpg

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 pagina

Avantajul ? 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 statistici

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 tot

Software folosit :

- Notepad++ : 90% - Scriptul

- Adobe Photoshop : 5% - "Grafica"

- Web Page Maker : 5% - Asezarea codului in grafica

Tehnologii folosite :

- PHP

- MySql

- HTML - mai putin

Linii 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 .

Share this post


Link to post
Share on other sites

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 tot

Chiar esti batut in cap .

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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 ... :)

Share this post


Link to post
Share on other sites

Imi pot modifica statusul ... asta e putin aiurea daca uiseru isi pune adminstrator la status .doar sa se dea smecher sau stiu eu !

Share this post


Link to post
Share on other sites

Pui Administrator , dar nu ai permisiuni ... Ca sa ai permisiune seteaza valoarea variabilei cookie din 1 in 3 :)

Share this post


Link to post
Share on other sites

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 77

print "Bine ai venit [b]" . $_COOKIE['nume'] . "[/b]

";

minidownloadcmsyk9.th.png

Share this post


Link to post
Share on other sites

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.

minidownloadcms2iz2.th.png

Morala este sa nu salvezi nimic important in cookie.

Cookie-ul se foloseste doar ca identificator de sesiune.

Stochezi totul in sesiune.

Share this post


Link to post
Share on other sites

Probabil 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.

Share this post


Link to post
Share on other sites

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 data

Mersi :)

Share this post


Link to post
Share on other sites
E securizat inainte de a fi introdus in baza de date :P

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).

Share this post


Link to post
Share on other sites

Astept SQL-urile si XSS-urile . De cookie stiu , de acum folosesc sesiuni . Oricum e primul meu script , dar tu nu intelegi .

Share this post


Link to post
Share on other sites
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 :P).

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 ;).

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites

http://concursvl.freehostia.com/index.php?pagina=cauta&ce=&unde=utilizatori

Asta 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 jos

Edit: 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 ?)

Share this post


Link to post
Share on other sites

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...;)

Share this post


Link to post
Share on other sites
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 ... :)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...