Jump to content
.darky

[SQLi] Realizarea injectiei folosind Live HTTP Headers (POST)

Recommended Posts

Posted (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):
    DGfxVoB.png
    Inainte de a apasa pe butonul Login, deschideti Live HTTP Headers, si ar trebuii sa arate cam asa:
    3YifIXw.png
    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):
    Bjse0Eq.png
    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):
    kHiBK08.png
    Cand apasam pe Replay, parametrii modificati sunt trimisi catre server, iar rezultatul va fi urmatorul:
    WD0pR5H.png
    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):
    oYZqJmO.png
    Dupa ce comanda a fost trimisa server-ului, pagina reintoarce urmatorul rezultat (cum ca, in baza de date se afla o singura coloana):
    auN77Ch.png
    Acum, pot incerca sa extrag versiunea bazei de date (pentru inceput):
    PnWgSdN.png
    In general, ideea este simpla: dupa ce ai modificat parametrul vulnerabil dupa bunul plac, apesi pe Replay pentru a trimite comanda server-ului.

Edited by .darky
  • Upvote 1
Posted (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 by florin_darck
  • Active Members
Posted
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.

Posted

Ma scuzati ca ma bag peste voi, dar POST este un 'http request method' nu un protocol

Posted by .darky

hKmmCxG.png

Ai scris defapt ce este ala si cu ce se mananca, dar e scris gresit in imagine

  • Active Members
Posted
Ma scuzati ca ma bag peste voi, dar POST este un 'http request method' nu un protocol

Posted by .darky

hKmmCxG.png

Ai scris defapt ce este ala si cu ce se mananca, dar e scris gresit in imagine

Exact! Protocolul HTTP este modul in care comunica clientul (browserul) cu serverul Apache ,cum se trimit datele, prin ce sunt despartite randurile (CRLF) etc...

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

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

  • Upvote 1
Posted

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.

Guest
This topic is now closed to further replies.


×
×
  • Create New...