.darky Posted March 8, 2014 Report Posted March 8, 2014 (edited) Introducere:Ei bine, ce pot spune, m-am gandit sa ma apuc de o serie de ghiduri pentru incepatori, majoritatea referindu-se la injectia SQL. In acest ghid, voi explica cum se realizeaza injectia SQL folosind cererea datelor de tip (eu o sa numesc acest lucru, "request") POST.Ce-i ala POST? Corn cu ciocolata?!Cred ca, cu totii stim ca protocolul HTTP (HTTP/1.1) suporta request-uri de tip (de cele mai multe ori, sunt folosite request-urile de tip GET/POST):GET;POST;HEAD;OPTIONS;CONNECT;PUT;TRACE;DELETE;Request-urile de tip GET au ca rol preluarea datelor si sunt vizibile in bara de adrese a navigatorului web (de asemenea, sunt vizibile "plain text"). Spre deosebire de request-urile GET, cele POST au ca rol procesarea datelor dintr-un formular HTML cu campuri de introducere, campuri de cautare, etc., in resurse si sunt ascunse dar ele pot fi vazute in codul sursa al paginii.Realizarea injectiei:In primul rand, aveti nevoie de Live HTTP Headers. In al doilea rand, sa presupunem ca avem urmatorul formular (http://www.site.com/login.php):Inainte de a apasa pe butonul Login, deschideti Live HTTP Headers, si ar trebuii sa arate cam asa:Odata ce a-ti apasat pe butonul Login (fi-ti sigur ca a-ti bifat Capture), Live HTTP Headers ar trebuii sa capteze datele trimise la server si sa arate cam asa (dupa ce a-ti captat datele trimise catre server, debifati Capture):Din poza de mai sus, se observa clar ca inainte de a incerca sa ma loghez, am introdus un nume si o parola (chiar daca acestea erau inexistente). Acum, selectati datele trimise catre server (prima linie) si apasati pe Replay. Dupa ce a-ti apasat, ar trebuii sa apara un nou dialog in care pot fi modificati parametrii si puteti verifica daca acestia sunt vulnerabili sau nu (in cazul meu, parametrul user este vulnerabil):Cand apasam pe Replay, parametrii modificati sunt trimisi catre server, iar rezultatul va fi urmatorul:In poza de mai sus, se poate vedea clar ca site-ul poate fi injectat prin request-uri de tip POST. Acum, ca site-ul e vulnerabil, putem extrage date (in acest exemplu, o sa folosesc metoda union based si voi incerca sa aflu numarul coloanelor folosind traditionalul group by x,y,z):Dupa ce comanda a fost trimisa server-ului, pagina reintoarce urmatorul rezultat (cum ca, in baza de date se afla o singura coloana):Acum, pot incerca sa extrag versiunea bazei de date (pentru inceput):In general, ideea este simpla: dupa ce ai modificat parametrul vulnerabil dupa bunul plac, apesi pe Replay pentru a trimite comanda server-ului. Edited March 9, 2014 by .darky 1
.darky Posted March 8, 2014 Author Report Posted March 8, 2014 Insa e ok ca ai explicat cum se foloseste http headers.Asta era si ideea.
florin_darck Posted March 8, 2014 Report Posted March 8, 2014 (edited) Cand vine vorba de SQLi, eu cred ca e mai usor cu HackBar, avand si optiune pentru POST si encodezi mai rapid in hex sau ce are fiecare nevoie .LE: @danyweb09 , te contrazic. Du-te pe o pagina de login, introdu niste date random si incearca sa te loghezi, primesti eroare bla bla open hackbar, enable post data si o sa vezi acolo ceea ce vezi si in http live headers Edited March 8, 2014 by florin_darck
Active Members dancezar Posted March 8, 2014 Active Members Report Posted March 8, 2014 Cand vine vorba de SQLi, eu cred ca e mai usor cu HackBar, avand si optiune pentru POST si encodezi mai rapid in hex sau ce are fiecare nevoie .Asta daca stii de dinainte packetul POST trimis,dar asa iti trebuie livehttp sa capturezi packetul si dupa poti sa il bagi in hackbar.
Aripipevant Posted March 9, 2014 Report Posted March 9, 2014 Asta era si ideea. Apreciez asta, am c?utat de mult un asemenea tutorial. Nu ?tiam cum se folose?te Live HTTP ?sta. Frumos!
aelius Posted March 9, 2014 Report Posted March 9, 2014 Ma scuzati ca ma bag peste voi, dar POST este un 'http request method' nu un protocolPosted by .darkyAi scris defapt ce este ala si cu ce se mananca, dar e scris gresit in imagine
Active Members dancezar Posted March 9, 2014 Active Members Report Posted March 9, 2014 Ma scuzati ca ma bag peste voi, dar POST este un 'http request method' nu un protocolPosted by .darkyAi scris defapt ce este ala si cu ce se mananca, dar e scris gresit in imagineExact! Protocolul HTTP este modul in care comunica clientul (browserul) cu serverul Apache ,cum se trimit datele, prin ce sunt despartite randurile (CRLF) etc...
.darky Posted March 9, 2014 Author Report Posted March 9, 2014 Ma scuzati ca ma bag peste voi, dar POST este un 'http request method' nu un protocolMultumesc, am corectat greseala.
aelius Posted March 9, 2014 Report Posted March 9, 2014 A scris bre omul, sa nu fim rai. A scris mai sus, gresise doar in imagine: https://www.dropbox.com/s/lwj7bld8ypf88hi/Screenshot%202014-03-09%2017.03.20.png
Cril Posted March 9, 2014 Report Posted March 9, 2014 E unul din putinele tutoriale frumos structurate de pe forum si voi luati omul la pula, ca altfel nu puteti.
Kalashnikov. Posted March 9, 2014 Report Posted March 9, 2014 Nu va inteleg frate de ce faceti tutoriale daca habar nu aveti ce scrieti in ele ?Tu de ce traiesti daca in final vei muri?Are 2 parti, bun daca pagina face POST cu query-ul / dar degeaba ca ai un form care face post cu respectivul query ne-securizat.
SilenTx0 Posted March 9, 2014 Report Posted March 9, 2014 Nu va inteleg frate de ce faceti tutoriale daca habar nu aveti ce scrieti in ele ?Daca si tu ai ajuns sa pui astfel de intrebari....Pacat ca ai uitat de unde ai plecat.On: felicitari pentru tutorial:) 1
SilenTx0 Posted March 9, 2014 Report Posted March 9, 2014 Stiu de unde am plecat si spre deosebire de tine nu ma iau de altii care fac acelasi greseli pe care le-am facut si eu. Tu imi spui mine sa termin cu figurile? Haha.
aelius Posted March 9, 2014 Report Posted March 9, 2014 Gata bre, hooooMultumim pentru tutorial @.darky 1