Jump to content

gicaprazzz

Members
  • Posts

    7
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

gicaprazzz's Achievements

Newbie

Newbie (1/14)

10

Reputation

  1. 9.75. te-am suparat chiar asa de tare? ai zis ca vrei sa vezi cum programez eu. si ti-am aratat. si am facut si o observatie (in urma careia o sa mai iau un warn).
  2. ma bucur ca stiai asta. dar stii sa o implementezi?
  3. gicaprazzz

    Matei

    ce limbaje de programare stii sa folosesti? si in afara programarii, cam ce cunostiinte mai ai?
  4. avkhackteam, o sa fiu acuzat de posthunt, dar o sa iti zic si tie, asa cum i-am spus lui Nytro: esti lame daca te lauzi ca ai reusit sa "copiezi interfete" si ca ai facut troieni nedetectabili. programarea e mai mult decat "keyloggere, troieni, intrat in calc lu' petrica de la 3 care m-a faultat la fotbal, determinarea numerelor prime, generator / incercator de parole, etc." am cautat destul timp un forum in care oamenii sa discute / sa faca ceva mai mult decat "978353 de linii de cod inutile". Postul meu NU ESTE O GENERALIZARE. Sunt destui oameni care stiu ce vorbesc aici.
  5. Dedicatie pentru Nytro. [offtopic: va rog sa nu va suparati pe mine ca am ceva cu Nytro si sa nu ma judecati dupa asta] Ma adresez aici in special celor care cunosc limbajul de interogare SQL si "tehnica" SQL Injection. Presupunem urmatoarea interogare SQL: Select * From users Where email = '$login_email' AND password = '$login_password' unde $login_email -> textul introdus de utilizator la logare in campul pentru e-mail, iar $login_password -> textul introdus in campul pentru parola. daca $login_password = ' or ''=', comanda rezultata va fi: Select * From users Where email = '$login_email' AND password = '' or ''='', deci conditia finala va deveni adevarata pentru orice e-mail, ceea ce inseamna ca ne putem autentifica fara a cunoaste parola corecta pentru emailul ales. Daca modificam interogarea SQL aftfel incat conditia sa fie falsa (ex: Select * From users Where email = '$login_email' AND password = '' AND 'x'='y') atunci nu vom reusi sa ne logam (evident interogarea nu va returna nici o inregistrare din tabel pentru care 'x'='y'). Gandindu-ne invers, putem sti sigur daca o anumita conditie pe care am pus-o in interogarea SQL este sau nu adevarata, verificand daca am reusit sa ne logam. In acest fel putem presupune si verifica anumite informatii privitoare la serverul SQL, la baza de date, la tabele... Trebuie doar sa modificam comanda SQL pentru a ne indica daca un anumit raspuns corespunde cu presupunerea facuta de noi. EXEMPLU. Dorim sa aflam versiunea unui server MySQL. Presupunem ca versiunea este 5.0.1.3 si modificam comanda SQL astfel: Select * From users Where email = 'gigel@mymail.com' AND password = 'parola_lui_gigel' AND version() = '5.0.1.3' presupunand ca exista userul gigel cu adresa specificata si ca parola este corecta, logarea va depinde de valoarea de adevar a expresiei version()='5.0.1.3'. Nu putem incerca insa toate combinatiile posibile de 1, 2, 3, 4, 5, 6, 7... caractere pentru a verifica un indicator precum versiunea. Un calcul simplu ne arata ca exista 26 * 2 litere (MARI + mici) + 10 cifre + aprox. 20 semne de punctuatie = 26 * 2 + 10 + 20 = 82 caractere. Astfel avem in total 82^1 moduri de a combina 1 caracter, 82^2 moduri de a combina 2 caractere, ... Inductia ne arata ca sunt in total 82^n moduri de a combina intre ele cele 82 caractere intr-un cuvant de lungime n. Astfe, pentru 5.0.1.3 am avea 82^7 incercari (numarul total), un numar aproape astronomic, care s-ar rasfrange intr-un timp de executie imens. Salvarea noastra in acest caz se numeste MID, o functie MySQL care extrage un subsir dintr-un sir de caractere. Sintaxa acestei functii este: MID(strEXPR text, intEXPR start, intEXPR length), cu urmatoarele semnificatii ale parametrilor: text - o expresie de tipul string din care dorim sa extragem un subsir start - pozitia de la care incepem sa extragem caractere (1 reprezinta primul caracter din <<text>>) length - numarul de caractere extrase Vom modifica comanda astfel incat sa gasim pe rand fiecare caracter din rezultatul de care avem nevoie (in acest caz version()): Select * From users Where email = 'gigel@mymail.com' AND password = 'parola_lui_gigel' AND Mid(version(),1,1) = '5' Select * From users Where email = 'gigel@mymail.com' AND password = 'parola_lui_gigel' AND Mid(version(),2,1) = '.' Select * From users Where email = 'gigel@mymail.com' AND password = 'parola_lui_gigel' AND Mid(version(),3,1) = '0' Select * From users Where email = 'gigel@mymail.com' AND password = 'parola_lui_gigel' AND Mid(version(),4,1) = '.' Select * From users Where email = 'gigel@mymail.com' AND password = 'parola_lui_gigel' AND Mid(version(),5,1) = '1' Select * From users Where email = 'gigel@mymail.com' AND password = 'parola_lui_gigel' AND Mid(version(),6,1) = '.' Select * From users Where email = 'gigel@mymail.com' AND password = 'parola_lui_gigel' AND Mid(version(),7,1) = '3' Toate aceste interogari sunt adevarate, observand ca primul caracter este '5', al doilea este '.', samd... Astfel, ceea ce ne ramae de facut este sa incercam pentru fiecare pozitie cele 82 de caractere posibile, avand astfel 82 * n incercari in total, un numar neinsemnat pe langa 82 ^ n. Voi completa cu cod sursa in momentul in care cineva va fi interesat. Voi propune si niste tehnici euristice de optimizare a procesului, dar doar in acelasi caz. Multumesc, Gica Prazzz [ce naspa suna numele...]
×
×
  • Create New...