OrdenagailuakProgramazioa

Zer da SQL injekzio bat?

Webguneen eta orrialdeen kopurua etengabe hazten ari da. Garapenaren arabera, nork egin dezakeen. Eta hasiberrien web-programatzaileek kode ezegoki eta zaharrak erabiltzen dituzte sarritan. Horrek akats eta hackerentzako hutsune ugari sortzen ditu. Erabili baino ere. Ahultasun klasikoenetako bat SQL injekzioa da.

Teoria apur bat

Jende askok ezagutzen du sarearen webgune eta zerbitzu gehienek SQL erabiltzen dutela datu-basea gordetzeko. Hau datu-biltegiak kudeatu eta kudeatzeko aukera ematen duen kontsulta egituratutako hizkuntza da. Datuen kudeaketa sistemen bertsio desberdinak daude - Oracle, MySQL, Postgre. Izena eta mota edozein dela ere, datuen eskaerak berdin erabiltzen dituzte. Hemen da potentzial ahultasuna datza. Garatzaileak ez badu behar bezala eta modu seguruan prozesatu eskaera, erasotzaileak aprobetxatu eta taktikak bereziak erabil ditzake datu-basean sartzeko eta hortik kudeatzeko gune osoarentzat.

Egoera horietan saihesteko, kodea modu inteligentean optimizatu eta kontu handiz kontrolatu behar duzu zein kontsulta prozesatzen den modu horretan.

SQL injekzio proba

Sareko ahultasunaren presentzia ezartzeko, aurrez prestatutako software sistema automatizatu asko daude. Baina proba soil bat eskuz egin dezakezu. Horretarako, joan ikertu beharreko guneetako bat eta saiatu helbide-barrako datu-basearen errorea eragiten. Adibidez, gune batean script batek eskaerak ez prozesatu eta ez ditu moztu.

Esate baterako, some_site / index.php? Id = 25 da

Modurik errazena 25 komatxoen ondoren jarri eta eskaera bat bidaltzea da. Akatsik gertatu ez bada, eskaera guztiak gunean iragazi egingo dira eta behar bezala prozesatuta, edo irteera desgaituta badago ezarpenetan. Orriak arazoak berrabiarazten baditu, SQL injekzioaren ahultasun bat dago.

Behin aurkitu ondoren, kentzeko ahal izango duzu.

Ahultasun hori ezartzeko , SQL kontsulta komandoei buruz pixka bat ezagutu behar duzu . Horietako bat UNION da. Bilaketaren emaitza batzuk bateratzen ditu. Beraz, mahaiaren eremu kopurua kalkulatu dezakezu. Lehen galderaren adibidea honelakoa da:

  • Some_site / index.php? Id = 25 UNIÓN SELECCIONAR 1.

Kasu gehienetan, sarrera hori errore bat gertatu beharko litzateke. Horrek esan nahi du eremu kopurua ez dela 1.a denik. Horrela, 1 eta gehiagoko aukerak hautatuta, bere zenbakia zehaztu dezakezu:

  • Some_site / index.php? Id = 25 UNION SELECT 1,2,3,4,5,6.

Hau da, akatsa agertzen denean, esan nahi du eremu kopurua asmatzen dela.

Arazo horri irtenbide alternatiboa ere badago. Adibidez, eremu kopurua handia denean - 30, 60 edo 100. Hau da GROUP BY komandoa. Kontsulta emaitzen arabera sailkatzen ditu ezaugarri batzuk, adibidez id:

  • Some_site / index.php? Id = 25 taldea 5.

Akatsak jaso ez badituzu, 5 baino gehiagoko eremuak badira. Horrela, aldaerak nahiko zabalduta daudenez, horietako zenbatekoak kalkulatzeko aukera dago.

SQL injekzio horren adibidea hasiberrientzat da bere burua probatzeko euren burua probatzeko. Garrantzitsua da gogoratzea norberaren baimenik gabe sartzeko baimenik ez dagoela Zigor Kodeko artikulu bat.

Injekzio mota nagusiak

SQL injekzioaren bidez ahultasunak ezartzeko hainbat modutan egin daiteke. Hona hemen teknika ezagunenak:

  • UNION kontsulta SQL injekzio. Mota honetako adibide sinple bat jadanik aipatu da. Inplementatu egiten da sarrerako datuak egiaztatzen dituen errore bat, eta horrek ez du inolaz ere iragazi.

  • Errorea oinarritutako SQL injekzioa. Izenak dioen bezala, mota honek akatsak ere erabiltzen ditu, sintaktikoki okerrak diren adierazpenak bidaltzen. Ondoren, erantzunaren goiburuak interceptatzen dira, aztertuz gero, geroago SQL injekzioa burutu ahal izango duzu.

  • Galdeketa pilatuak SQL injekzioa. Ahultasun hau jarraian eskaerak gauzatzean datza. ";" Ikurra amaitzen duen eranskinaren ezaugarri da. Sarritan sarbide hau irakurtzeko eta idazteko datuak ezartzeko edo sistema eragilearen funtzioak kudeatzeko sarbidea sar daiteke, pribilegioak baimena ematen badio.

Software-konplexuak SQL ahultasunak bilatzeko

SQL injekzioentzako erabilgarri dauden programek bi osagai dituzte: gune eskaneatzea ahultasun posibleengatik eta datuak erabiltzeko sarbidea erabiltzeko. Plataforma ezagunen ia guztientzako utilitateak daude. Bere funtzionaltasunak gune asko egiaztatzen ditu SQL injekzioa hackeratzeko.

Sqlmap

Eskanerra oso indartsua da DBMS ezagunena duena. Hainbat teknika onartzen ditu SQL injekzioa gauzatzeko. Pasahitza hash mota automatikoki aitortu eta hiztegiaren bidez hack gaitzen du. Zerbitzariaren fitxategiak kargatzeko eta kargatzeko funtzionaltasuna ere badaude.

Instalazio Linux ingurunean honako komandoak erabiliz egiten dira:

  • Git klona https://github.com/sqlmapproject/sqlmap.git sqlmap-dev,
  • Cdsqlmap-dev /,
  • ./sqlmap.py --wizard.

Windowserako, aukera bat dago komando-lerro batekin, eta erabiltzaile-interfaze grafiko batekin.

JSQL injekzioa

JSQL injekzioa SQL ahultasunak erabiltzeko probako plataforma gurutzatua da. Java-n idatzitakoa da, sistemak JRE instalatuta izan behar du. GET, POST, goiburua, cookiea eska ditzakezu. Interfaze grafiko egokia du.

Softwarea instalatzea honakoa da:

Wget https://github.com/`curl -s https: //github.com/ron190/jsql-injection/releases | Grep-E -o '/ron190/jsql-injection/releases/download/v[0-9]{1,2}.[0-9]{1,2}/jsql-injection-v[0-9] {1,2}. [0-9] {1,2} .jar '| Head-n 1

Abiaraztea java -jar ./jsql-injection-v*.jar komandoaren bidez egiten da

SQL zaurgarritasunerako gunea egiaztatzen hasteko, goiko eremuko helbidea sartu behar duzu. GET eta POSTetarako bereiziak dira. Emaitza positiboa bada, erabilgarri dauden taulen zerrenda bat agertuko da ezkerreko leihan. Informazio konfidentziala ikusi eta ikasi ahal izango dute.

Administrazio-panelak bilatzeko, erabili "Admin orria" fitxa. Txantiloi bereziak erabiltzen ditu erabiltzaile pribilegiatuen sistemako erregistroak automatikoki bilatzeko. Horietako, pasahitzaren hash bat bakarrik jaso dezakezu. Baina programa-tresnetan ere eskuragarri dago.

Ahultasun guztiak aurkitu ondoren eta beharrezko kontsultak eginez gero, erabilgarritasuna zure fitxategia zerbitzarira igo ahal izango duzu edo, alderantziz, deskargatu hemendik.

SQLi Dumper v.7

Programa hau erabiltzeko tresna erraza da SQL-en ahultasunak bilatzeko eta inplementatzeko. Zulagailuak deiturikoak sortzen ditu. Haien zerrendak Interneten aurki daitezke. SQL injekzioaren Dorky bilaketa-kontsulten eredu berezia da. Zure laguntzarekin, edozein motatako bilatzaileen bidez potentzialki zaurgarria den gunea aurkitu dezakezu.

Prestakuntza tresnak

The itsecgames.com gunea tresna-barra berezi bat dauka, adibidez, SQL injekzio bat nola egin eta probatu erakusten du. Erabili ahal izateko, deskargatu eta instalatu behar da. Artxiboak fitxategi multzo bat dauka, hau da, gunearen egitura. Instalatzeko, Apache, MySQL eta PHP web zerbitzuen multzoak behar izango dituzu.

Fitxategia web zerbitzariaren karpetan deskonprimitzea ondoren, software produktua instalatzean sartu zenean sartu behar duzu . Erabiltzaileen erregistroa irekiko duen orria irekiko da. Hemen zure datuak sartu eta "Sortu" sakatu behar dituzu. Erabiltzaileak leiho berri batera itzultzean, sistemak probako aukera bat hautatzeko eskatzen dizu. Horien artean, injekzioak deskribatzen dira eta beste hainbat proba egiten dituzte.

SQL injekzio mota GET / Search adibide bat kontuan hartu behar da. Hemen hautatu eta "Hack" sakatu behar duzu. Erabiltzaileak bilaketa-kate bat eta filmak dituzten zenbait gune imitatu aurretik agertuko dira. Zinemaldira joan zaitezke denbora luzez. Baina 10 bakarrik daude. Esate baterako, Iron Man sartzen saiatu zara. Filma agertuko da, gune hori lantzen ari dela esan nahi du, eta taulak eskuragarri daude. Orain, script-ak karaktere bereziak iragazten baditu, bereziki, komatxoa. Horretarako, gehitu '' helbidearen lerroan. Eta, filma izenburuaren ondoren egin behar duzu. Guneak errore bat botako du Errorea: zure SQL sintaxiaren errore bat duzu; Egiaztatu zure MySQL zerbitzariaren bertsioari dagozkion eskuliburua eskuineko sintaxiaren arabera '%' 'gertu' 1 linean erabiltzeko, eta horrek esan nahi du karaktereak gaizki tratatzen direla. Beraz, zure eskaera ordezkatzeko probatu dezakezu. Baina lehenik, eremu kopurua kalkulatu behar duzu. Horretarako, aurrekontuaren ostean sartzen den ordenaren arabera erabili: http://testsites.com/sqli_1.php?title=Iron+Man 'by order by 2 - & action = search.

Komando honek pelikulari buruzko informazioa besterik ez du erakutsiko, hau da, 2. eremu baino gehiagoko eremuak. Harri bikoitz batek gainerako eskaerak baztertu egin behar dituela adierazten du. Orain ordenatu behar dugu, balio handiak ordezkatuz errore bat atera arte. Azkenean, eremu bihurtuko da 7.

Datu-basean zerbait erabilgarria lortzeko denbora da. Beharrezkoa izango da kontsulta-barra helbidean pixka bat aldatzea, honela jarriz: http://testsites.com/sqli_1.php?title=Iron+Man 'union select 1, database (), user (), 4, password, 6, 7 erabiltzaileetatik - & action = bilatu. Bere exekuzioaren ondorioz, lerroen bidez pasahitzaren hashak ikusiko dituzu, eta erraz ulertuko dira karaktere ulergarriak lineako zerbitzu bat erabiliz. Pokoldovav pixka bat eta saioa hasi duen eremuaren izena hautatuta, beste norbaiten erregistroan sar zaitezke, adibidez, administrazio gunea.

Produktuan injekzio-mota asko daude, praktikatu ahal izango dituzu. Gogoan izan behar da sarearen gaitasunak sarean aplikatzea, gune errealetan kriminala izan daitekeela.

Injekzio eta PHP

Arau orokor gisa, PHP kodea erantzukizuna da erabiltzailearen eskaerak prozesatzeko beharrezkoak direnak. Hori dela eta, maila honetan SQL injekzioen aurkako babesa eraikitzeko PHP-n behar duzu.

Hasteko, merezi du gomendio sinple batzuk ematea, horretarako egin behar duzunaren arabera.

  • Datuak datu-basean sartu aurretik prozesatu behar dira beti. Hau gauzatu ahal izango duzu lehendik dauden adierazpenak erabiliz edo kontsultak eskuz antolatuz. Hemen ere, merezi du zenbakizko balioak nahitaezko mota bihurtzen direla;
  • Ez kontrol eskuliburu batzuen itxura eskatzeko.

Orain, MySQL-en kontsultaren arauei buruz, SQL injekzioen aurka babesteko.

Kontsulta baterako adierazpenen bat idaztean, garrantzitsua da SQL gako-hitzak banatzea.

  • SELECT * FROM table WHERE izena = Zerg.

Diseinu honetan, sistemak uste du Zerg eremuen izena dela, beraz, komatxo artean sartu behar duzu.

  • SELECT * FROM table WHERE izena = 'Zerg'.

Hala ere, badira egoerak balio bera duten komatxorik.

  • SELECT * FROM table WHERE izena = 'Cote d'Ivoire'.

Hemen, katuaren zati bat bakarrik prozesatzen da eta gainerakoa talde gisa hautematen da, eta, jakina, ez da. Hori dela eta, errore bat gertatzen da. Beraz, datu mota hau ikusi behar duzu. Horretarako, erabili barrako barra-barra \.

  • SELECT * FROM table WHERE name = 'cat-e' Ivory. '

Goiko guztiak kateei aplikatzen zaizkie. Ekintza zenbaki batekin gertatzen bada, ez da komatxorik edo barrarik behar. Dena den, derrigorrezko datuak behar bezala eraman behar dituzte nahitaez.

Gomendio bat dago eremuen izena backquote batean sartu behar dela. Ikur hau teklatuaren ezkerraldean dago, "~" tildearekin batera. Hau beharrezkoa da MySQL-k bere izenarengandik bereizitako eremua zehaztea.

Lan dinamikoa datuekin

Sarritan, datuak datu-base batetik ateratzeko, dinamikan sortutako kontsultak erabiltzen dira. Adibidez:

  • SELECT * FROM WHERE zenbakia dagoeneko taula '$ number'.

Hemen, $ zenbaki eremu balioen definizio gisa pasatzen da. Zer gertatuko da Cat-d'Ivoirek? Errore bat gertatu da.

Arazo hau ekiditeko, noski, ezarpenetan "komatxorik magikoak" sartu ditzakezu. Baina orain, datuak beharrezkoak izango dira eta ez dira beharrezkoak izango. Gainera, eskuz idatzitako kodea eskuz badaude, denbora pixka bat pasatu ahal izango duzu burglary-resistant system yourself.

Barra bat gehitzeko zeure burua, mysql_real_escape_string erabil dezakezu.

$ Number = mysql_real_escape_string ($ zenbakia);

$ Year = mysql_real_escape_string ($ year);

$ Query = "Sartu taula INTO (zenbakia, urtea, klasea) BALIOAK ('$ zenbakia', '$ year', 11)".

Kodea bolumenean hazi arren, oraindik potentzialki seguruagoa izango da.

leku-markak

Leku-markatzaileak jatorrizko markatzaileak dira, sistema horren arabera funtzio berezi bat leku honetan ordeztu behar dela jakiten duenean. Adibidez:

$ Sate = $ mysqli-> prepare ("SELECT FROM WHERE FROM WHERE FROM FROM FROM FROM DISTRICT?");

$ Sate-> bind_param ("s", $ zenbakia);

$ Sate-> exekutatu ();

Kodearen zati honek kontsulta-txantiloia prestatzen du, eta, ondoren, aldagai-zenbakia lotzen du eta exekutatzen du. Ikuspegi honek eskaera prozesatzea eta bere ezarpena banatzea ahalbidetzen du. Horrela, zuk kontsulta ditzakezu SQL kontsulten kaltegarriak diren kodeen injekzioa erabiliz.

Zer egin daiteke erasotzaile batek?

Sistema babestea oso ahaztea ez den faktore garrantzitsua da. Jakina, webgune eta negozio txartel sinple bat berreskuratzeko errazagoa izango da. Eta hau portal, zerbitzu eta foro handi bat bada? Zer ondorio izan ditzake segurtasunari buruz?

Lehenik eta behin, hackerrek datu-basearen osotasuna hautsi dezake eta guztiz ezabatu. Eta guneko administratzaileak edo hosterek ez zuten babeskopia egin, orduan ez da erraza izango. Horrez gain, erasotzaile batek, gune bakar batean hacking, beste zerbitzari batean kokatzen diren beste batzuetara aldatu dezake.

Hurrengoa bisitarien datu pertsonalen lapurreta da. Nola erabili - dena hackerearen irudimena baino ez da. Baina, nolanahi ere, ondorioak ez dira oso atseginak izango. Batez ere finantza informazioa jasotzen zen.

Era berean, erasotzaile batek datu-basea batu egin dezake eta, ondoren, itzultzeko dirua estutu.

Erabiltzaileen desinformazioa webgunearen administratzailearen izenean, nor ez da bera ere, ondorio negatiboak ere izan ditzake iruzurrak.

ondorio

Artikulu honetako informazio guztia helburu informatzailearentzat bakarrik dago. Erabili bakarrik zure proiektuak probatzeko ahultasunak detektatu eta konpontzen direnean.

SQL injekzioa nola egin duen jakiteko azterketa sakona egin nahi baduzu, SQL hizkuntzaren ezaugarriak eta ezaugarriak aztertu behar dituzu. Nola egiten diren kontsultak, gako-hitzak, datu-motak eta guzti honen aplikazioa.

Gainera, ezin duzu PHP funtzioak eta HTML elementuen funtzionamendua ulertu. Injekzioak erabiltzeko puntu zaurgarriak nagusiak dira helbide-barra, bilaketa eta hainbat eremutan. PHP funtzioen azterketa, inplementatutako bidea eta aukerek akatsak nola saihestu ditzaketen ulertzen lagunduko dizu.

Prestatutako software tresnen presentzia aukera ematen du gunearen analisi sakona egin ahultasun ezagunetan. Produktu ezagunenetako bat kali linux da. Linux-en oinarritutako sistema eragilearen irudia da, indarrean dagoen gunearen azterketa integrala egiteko gai diren programa eta utilitate ugari biltzen dituena.

Zergatik behar dut gunea hack nola ezagutu? Oso erraza da - beharrezkoa da zure proiektuaren edo gunearen potentzialki zaurgarria den tokia izatea. Batez ere linean ordaindu ahal izateko lineako denda bat bada, erasotzaileak arriskuan jar ditzakeen datuen ordainketa.

Ikerketa profesionalerako, informazioaren segurtasuneko zerbitzuak daude gunean ikusteko, irizpide eta sakonera desberdinen arabera. HTML injekzio soiletik ingeniaritza soziala eta phishing-a.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 eu.unansea.com. Theme powered by WordPress.