SQL Injektimi

Nga Wikipedia, enciklopedia e lirë
(Përcjellë nga SQL Injektimet)

SQL Injection (Structured Query Language injection – shq. injektimi i gjuhës së strukturuar të pyetësorëve). Aplikacionet në internet bëjnë të mundur që vizitorët e ueb faqeve të paraqesin dhe të marrin të dhëna prej data bazës përmes internetit duke përdorur shfletuesit e tyre. Data bazat janë të rëndësishme për ueb faqet moderne, ato ruajnë te dhëna te ndryshme nga vizitoret, marrin informata nga klientët, furnizuesit e shume persona tjerë.

Sulmi SQL injection bëhet me insertimin e SQL query (pyetjeve) përmes futjes së të dhënave prej klientit në aplikacion. Injektimi i suksesshëm i SQL mund të bëj të mundur leximin e të dhënave prej databazës, modifikimin e të dhënave apo edhe fshirjen e tyre nga databaza.

Shumica e faqeve apo aplikacioneve përfshijnë kërkime në faqe, forma të kyçjes (login) ose kontakt forma, të cilat mund të përdoren për këtë qellim. Kështu që bëjnë të mundur që përmes këtyre forma të cilat janë të lidhura me databazë për verifikime te ndryshme, sulmuesit mundohen të krijojnë query të ndryshme të cilat mund të marrin informata prej databazës apo edhe t’i dëmtojnë ato.

Shembuj të SQL Injektimit[Redakto | Redakto nëpërmjet kodit]

Shembulli 1[Redakto | Redakto nëpërmjet kodit]

SELECT * FROM Users WHERE Username='$username' AND Password='$password'

Një query i thjesht është paraqitur më lart i cili përdoret për autorizimin e përdoruesi. Nëse query kthen përgjigje do te thotë se ekziston një klient me atë username dhe me atë fjalëkalim, dhe kështu bën mundur hyrjen ne sistem. Supozojmë se fusim këto të dhëna më poshtë:

$username = 1' or '1' = '1’—-

Query do të bëhet:

SELECT * FROM Users WHERE Username='1' OR '1' = '1'-- AND Password='$password'

Për shkak të vlerës 1=1 query do të jete gjithmonë i vërtetë (true), si dhe simboli ”--” bën të mundur që pjesa për verifikimin e fjalëkalimit të bëhet koment, kështu që sulmuesi mund të futet në sistem.

Shembulli 2[Redakto | Redakto nëpërmjet kodit]

Në këtë rast kemi të bëjmë me gjetjen e një përdoruesi, varësisht prej numrit e të cilit databaza do të kthej përgjigje.

SELECT * FROM Users WHERE UserId =  + txtUserId

Nëse veprojmë si më poshtë atëherë ne do të mundemi te fshijmë një prej tabelave të bazës së të dhënave, kuptohet nëse e dimë më parë emrin e tabelës.

10; DROP TABLE Suppliers

Si do të duket query:

SELECT * FROM Users WHERE UserId = 10; DROP TABLE Suppliers

Shembulli 3[Redakto | Redakto nëpërmjet kodit]

Në shembullin në vazhdim është paraqitur insertimi i një rreshti të ri në databazë, gjithashtu ne mund edhe të bëjmë azhurnimin e një rreshti të caktuar nëse vetëm më herët e dimë emrin e përdoruesit ose një të dhënë të tij për të ditur se ku do t’i ndryshojmë të dhënat.

SELECT * FROM Users WHERE UserId = 10; INSERT INTO tblUsers VALUES(5,john,smith)

Nëse përdorim shembullin e njëjtë po tani për update:

SELECT * FROM Users WHERE UserId = 10; UPDATE tblUsers SET UserId=20 WHERE username=sarah

Dëmet nga SQL Injection[Redakto | Redakto nëpërmjet kodit]

Shumicës së ueb sajteve sot iu kërkohet që të bëjnë skanime për detektimin e SQL Injection. Disa kanë rrezik më të madh e disa më të vogël, mirëpo është fakt se rreziku nga kjo teknikë e hakimit është duke u rritur. Kjo rritje bazohet në faktin se së pari, ueb sajtet ofrojnë shumë mundësi të interaksionit me vizitorët, trend ky në rritje dhe së dyti sepse sulmuesit janë duke u bërë gjithnjë e më të aftë, duke gjetur aplikacione të reja për hakim.

Rreziku nga sulmet me SQL Injection varet nga natyra e biznesit, numri i stafit dhe aftësitë e tyre për menaxhimin e sigurisë në ueb. Në shënjestër janë ueb sajtet të cilat kanë të dhëna të vlershme, nëse kemi një biznes të suksesshëm, nëse ueb sajt ka të bëj me çështje të rëndësishme politike apo sociale, apo nëse kemi ueb sajt lidhur me menaxhimin e parave.

Dëmet që mund të shkaktohen nga një sulm i suksesshëm i SQL Injection janë shumë të mëdha. Një teknikë më e avancuar bën që sulmuesi të mund të qaset në sistem përmes një dere të fshehtë (backdoor). Sulmuesi fiton të drejtat e administratorit që do të thotë se ai ka qasje të pa limituar në të gjitha të dhënat që ndodhen në server si p.sh. të dhënat personale apo të kompanisë.

SQL Injection mund të kombinohet edhe me teknika të tjera për të manipuluar se si të dhënat shfaqen te vizitorët e ueb faqes. Sulmuesit mundohen që të mos vërehen në mënyrë që të vazhdojnë të kenë qasje në sistem, dhe zakonisht këto injektime zbulohen muaj më pas kur dëmi është i pariparueshëm.

Dëmet kryesore që mund të shkaktohen nga SQL Injection janë:

  • Manipulimi me të dhëna në data bazë
  • Vjedhja e informacioneve të konsumatorit
  • Humbje financiare
  • Dëmtim i markës (firmës)
  • Shitja e informatave

Manipulimi me të dhëna në data bazë[Redakto | Redakto nëpërmjet kodit]

Sulmuesi pas injektimit ka mundësi të ndryshojë, të krijojë query të ri dhe të fshijë tabela të tëra me një komandë të vetme. Një sulm masiv mund të përfshijë korruptimin e të dhënave në data bazë dhe shkatërrimin e kopjeve (backup).

Vjedhja e informacioneve të konsumatorit/stafit[Redakto | Redakto nëpërmjet kodit]

Në rast se kemi një ueb site e cila ka të bëj me ndonjë biznes apo kompani në databazën e saj do të ketë përveç tjerash shumë të dhëna për stafin dhe konsumatorët. Sulmuesi mund të vjedh këto të dhëna siç janë SSN, adresat, nr. e telefonave, datëlindjet dhe të dhëna tjera me rëndësi.

Humbje financiare[Redakto | Redakto nëpërmjet kodit]

Ueb sajtet të cilat merren me menaxhimin e të hollave dhe transaksioneve kanë databazën me të dhëna të rëndësishme, të cilat tregojnë për personat që kanë bërë transaksione, kohën e kryerjes së tyre, e deri te informatat që përmbajnë numrat e kredit kartelave. Sulmuesit në këtë mënyrë mund t’i qasen direkt llogarive bankare dhe të bëjnë tërheqjen e parave.

Dëmtim i markës (firmës)[Redakto | Redakto nëpërmjet kodit]

Kur ueb sajti që përmban të dhënat për ndonjë kompani apo markë të rëndësishme sulmohet, mund të bëhet dëmtimi i saj. Në këtë rast përveç humbjeve materiale që mund të pësojë ajo markë, humbet edhe kredibiliteti në të dhe largohen konsumatorët.

Shitja e informacioneve[Redakto | Redakto nëpërmjet kodit]

Sulmuesit zakonisht kur sulmojnë ueb sajtet kanë qëllim të përfitojnë nga to. Në rastet kur informatat që nxirren nga data baza kanë të bëjnë me personalitete të shquar qofshin ata të botës së spektaklit, televizionit, apo politikës janë të dhëna shumë të vlershme të cilat mund të shiten.

Referime[Redakto | Redakto nëpërmjet kodit]

  • Clarke, Justin (2009). SQL Injection Attacks And Defense (PDF). Arkivuar nga origjinali (PDF) më 5 mars 2016. Marrë më 9 qershor 2014. {{cite book}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  • "SQL Injection: What is it?". {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  • "SQL Injection Understanding and Defending Against SQL Injection Attacks". Arkivuar nga origjinali më 13 korrik 2014. Marrë më 9 qershor 2014. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)