TietokoneetOhjelmointi

Mikä on injektio SQL?

Sivustojen määrä ja sivuja, kasvaa tasaisesti. Taken kehittämään kaikkia niitä, jotka voi. Ja noviisi Web-kehittäjät käyttävät usein turvattomia ja vanhaa koodia. Ja se luo paljon rikolliset ja hakkereita. Kuin ne ovat. Yksi klassinen haavoittuvuuksia - SQL-injektio.

Hieman teoriaa

Monet tietävät, että suurin osa sivustoista ja palveluista verkossa käyttävät SQL-tietokannan varastointiin. Tämä on jäsennelty kyselykielen jonka avulla voit hallita ja johtaa tietojen tallentamiseen. On olemassa monia eri versioita tietokannan hallintajärjestelmän tietokantaan - Oracle, MySQL, Postgre. Riippumatta nimi ja tyyppi, ne käyttävät samaa kyselyn tiedot. Juuri tässä piilee mahdollisen haavoittuvuuden. Jos kehittäjä ei käsitellä oikein ja turvallisesti pyytää, hyökkääjä voi hyödyntää tätä ja käyttää erityisiä taktiikoita päästä tietokantaan, ja sitten - ja kaikille sivuston hallinta.

Tällaisten tilanteiden välttämiseksi, sinun täytyy oikein optimoida koodin ja tiiviisti tavalla, jolla pyyntö käsitellään.

Tarkista SQL-injektion

Sen selvittämiseksi, onko heikkouden verkon paino on päättynyt automatisoituja ohjelmistoja. Mutta se on mahdollista suorittaa yksinkertaisen tarkistaa manuaalisesti. Voit tehdä tämän, mene yksi testi sivustoja ja osoiterivillä yrittää aiheuttaa tietokantavirhe. Esimerkiksi käsikirjoitus päällä ei voi käsitellä pyyntöä eivätkä leikata niitä.

On esimerkiksi nekiy_sayt / index.php? Id = 25

Helpoin tapa - laittaa 25 jälkeen lainaus ja lähetä pyyntö. Jos mitään virhettä tapahtunut, joko päällä ja suodattimen kaikki pyynnöt käsitellään oikein, tai ei ole käytössä asetuksissa tuotannostaan. Jos sivu ladataan kanssa ongelmia, niin alttiutta SQL-injektio on.

Kun hän sai selville, voit yrittää päästä siitä eroon.

Toteuttaakseen tämän haavoittuvuuden tarvitse tietää hieman SQL-kyselyt joukkuetta. Yksi niistä - Union. Se kokoaa yhteen useita kyselyn tulokset yhteen. Voimme siis laskea kenttien määrä taulukossa. Esimerkki ensimmäinen kysely on:

  • nekiy_sayt / index.php? id = 25 UNION SELECT 1.

Useimmissa tapauksissa tämä levy pitäisi tuottaa virheen. Tämä tarkoittaa sitä, että monilla aloilla ei ole yhtä suuri kuin 1. Siten valitsemalla vaihtoehtoja 1 tai suurempi, on mahdollista määritellä niiden tarkkaa lukumäärää:

  • nekiy_sayt / index.php? id = 25 UNION VALINTA 1,2,3,4,5,6.

Eli kun virhe ei enää näy, se tarkoittaa, että useilla aloilla arvata.

Myös vaihtoehtoinen ratkaisu tähän ongelmaan. Esimerkiksi, kun suuri määrä kenttiä - 30, 60 tai 100. Tämä komento GROUP BY. Se ryhmittelee tulokset kyselyn millään perusteella, esimerkiksi ID:

  • nekiy_sayt / index.php? id = 25 GROUP BY 5.

Jos virhe ei ole saatu, niin kentät yli 5. Siten korvaamalla vaihtoehtoja on melko laaja valikoima, on mahdollista laskea, kuinka monta heistä todella.

Tämä esimerkki SQL-injektio - aloittelijoille, jotka haluavat kokeilla itse testauksessa sen päällä. On tärkeää muistaa, että luvattomasta käytöstä toiseen käytettävissä artikkelin rikoslain.

Päätyyppiä injektion

Toteuttaa haavoittuvuus SQL-injektio useissa suoritusmuodoissa. Seuraava ovat suosituimpia menetelmiä:

  • Unionin kyselyn SQL injektio. Yksinkertainen esimerkki tällaisesta on tarkasteltu jo edellä. Se toteutetaan virheen takia tarkkailun saapuvat tiedot, joita ei suodateta.

  • Virhe SQL-injektio. Kuten nimi kertoo, tämä tyyppi käyttää myös virhe, lähettämällä ilmaisuja kokoonpanossa syntaktisesti virheellinen. Sitten on kaappaamisen vastaus otsikot, analysoidaan joka voidaan suorittaa myöhemmin SQL-injektio.

  • Stacked kyselyitä SQL injektio. Tätä heikkoutta määritetään tekemällä peräkkäisiä pyyntöjä. Se on tunnettu siitä, että lisäksi lopussa on merkki ";". Tämä lähestymistapa toteutetaan usein päästä täytäntöönpanon lukea ja kirjoittaa dataa tai käyttöjärjestelmän toimintoja, jos etuoikeuksia salli sitä.

Ohjelmisto voi etsiä SQL-haavoittuvuuksia

Onko SQL-injektio, ohjelma on yleensä kahdesta osasta - sivusto tarkistaa mahdolliset haavoittuvuudet ja käyttää niitä päästä tietoihin. On joitakin työkaluja lähes kaikki tunnetut alustoilla. Niiden toimivuus helpottaa suuresti tarkkailun verkkosivuilla halki SQL-injektio.

Sqlmap

Erittäin tehokas skanneri, joka toimii useimpien tietokantoihin. Se tukee erilaisia menetelmiä täytäntöönpanon SQL-injektio. Se on kyky tunnistaa automaattisesti tyypin salasanan hash halkeilua ja sanakirja. Läsnä ja toiminnallisia tiedostojen lataus ja palvelimelta.

Asennus Linux tehdään komennoilla:

  • git klooni https://github.com/sqlmapproject/sqlmap.git sqlmap-dev,
  • cdsqlmap-dev /,
  • ./sqlmap.py --wizard.

Windows on saatavana lisävarusteena komentoriviltä ja graafinen käyttöliittymä.

jSQL Injection

jSQL Injection - cross-platform työkalu testaukseen käyttöön SQL haavoittuvuuksia. Javalla, joten järjestelmä on asennettava JRE. Pystyä käsittelemään GET pyyntöihin, POST, header, cookie. Se on kätevä graafinen käyttöliittymä.

Asennus Tämän ohjelmistopaketti on seuraava:

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 '| pää-n 1`

Käynnistäminen on komennolla java -jar ./jsql-injection-v*.jar

Jotta voisimme alkaa Testipaikalla SQL-haavoittuvuuden, sinun täytyy syöttää osoitteen ylimpään kenttään. Ne ovat erillisiä GET ja POST. Tulos on positiivinen, luettelo käytettävissä taulukoista näkyy vasemmassa ikkunassa. Voit katsella niitä ja oppia joitakin luottamuksellisia tietoja.

välilehti «-hallinnointisivun» käytetään löytää hallinnollista paneelit. Sille erityisillä malleja hakee automaattisesti järjestelmä kirjaa tehokäyttäjät. Niistä saat vain hash salasanan. Mutta hän on työkalupakissa ohjelman.

Todettuaan kaikki haavoittuvuudet ja injektio tarvittavat tiedustelut, työkalu mahdollistaa palvelimen täyttää tiedoston, tai päinvastoin, lataa se sieltä.

SQLI Dumper v.7

Tämä ohjelma - helppokäyttöinen työkalu löytää ja toteuttamiseen SQL haavoittuvuuksia. Se tuottaa YK perustuu ns Dorkas. Heidän luettelo löytyy Internetistä. Dorca SQL-injektio - nämä ovat erityisiä malleja hakuja. Niiden avulla voit löytää mahdollisesti haavoittuvia kasvupaikan hakukoneen kautta.

Työkalut koulutukseen

Itsecgames.com päällä on erityinen joukko työkaluja, joiden avulla esimerkki osoittaa, miten SQL injection ja testata sitä. Voidakseen hyötyä, on tarpeen ladata ja asentaa. Arkistossa on joukko tiedostoja, joka on sivuston rakennetta. Asentaa sen tarvitsee nykyisessä järjestelmässä joukko Apache www-palvelin, MySQL ja PHP.

Pura arkiston www-palvelin kansion, sinun täytyy mennä merkityllä osoitteella kirjattuna asentaaksesi tämän ohjelmiston. Sivun käyttäjäksi rekisteröitymiseen. Täällä täytyy syöttää tietoja ja klikkaa «Luo». Liikkuvat käyttäjän uuden näytön, järjestelmä kehottaa valitsemaan jonkin testitapauksia. Joukossa on sekä kuvattu injektiona, ja monet muut tarkastettavia kohteita.

On harkittava esimerkki SQL-injektio tyyppinen GET / haku. Täällä sinun täytyy valita se ja klikkaa «Hack». Ennen kuin käyttäjä tulee, ja hakumerkkijono jäljitelmä elokuvan sivuston. Lajitella elokuvia voi olla pitkä. Mutta on vain 10. Esimerkiksi voit yrittää tulla Iron Man. Se osoittaa elokuva, sivusto toimii, ja taulukot se sisältää. Nyt meillä on tarkistaa, jos erikoismerkkejä käsikirjoitus suodattimet, erityisesti lainaus. Voit tehdä tämän, lisää 'osoitekenttään. " Lisäksi tämä on tehtävä elokuvan jälkeen otsikko. Sivusto antaa virheilmoituksen Virhe: Olet virhe SQL syntax; tarkistaaksesi käsikirja, joka vastaa sinun MySQL-palvelimen version oikea syntaksi käyttää lähellä '%' 'rivillä 1, jossa todetaan, että merkit eivät vieläkään käsitellä oikein. Joten voit yrittää korvata pyynnön. Mutta meidän on ensin laskettava määrä kenttiä. Sitä käytetään tässä järjestyksessä, joka on otettu käyttöön sen jälkeen, kun lainauksia: http://testsites.com/sqli_1.php?title=Iron+Man 'tilaa 2 - & action = hakua.

Tämä komento näyttää vain tietoja elokuvasta, eli kenttien määrä on suurempi kuin 2. kaksoisyhdysmerkki kertoo palvelimen, että muut pyynnöt on hävitettävä. Nyt meidän on selvitettävä, mikä merkitys kasvaa niin kauan kuin virhettä ei ole painettu. Lopulta käy ilmi, että kentät ovat 7.

Nyt on aika saada jotain hyödyllistä irti alustasta. Tulee muuttaa hieman pyynnön osoiteriville, jolloin sen lomakkeen: http://testsites.com/sqli_1.php?title=Iron+Man liitto valitse 1, tietokanta (), käyttäjän (), 4, salasana, 6, 7 käyttäjiltä - & action = hakua. Seurauksena sen vaihtoehto on näyttää merkkijonon salasanan hash, joka voidaan helposti muuntaa ymmärrettävää symboleja jollakin verkkopalveluja. Loihti vähän ja kyytiin kentän nimiin kirjautuminen, voit päästä jonkun toisen merkinnän, kuten admin sivuston.

Tuotteen paino on laji injektiotyyppiset, johon harjoitella. On muistettava, että hakemus näiden taitojen verkon todellisiin sivustot voivat olla rikos.

Injektio ja PHP

Pääsääntöisesti PHP-koodin ja vastaa tarvittavaa käsittelyä saapuville käyttäjälle. Siksi tällä tasolla sinun täytyy rakentaa suojautua SQL-injektio PHP.

Ensimmäinen, nyt antaa muutamia yksinkertaisia ohjeita, pohjalta, joka on tarpeen tehdä niin.

  • Tiedot on aina käsiteltävä ennen niiden tietokantaan. Tämä voidaan tehdä joko käyttämällä olemassa olevia ilmaisuja, tai järjestämällä kyselyitä käsin. Tässäkin olisi otettava huomioon, että numeeriset arvot muunnetaan tyyppiä, jota tarvitaan;
  • Välttää pyydetään eri ohjausrakenteita.

Nyt hieman sääntöjä koota kyselyitä MySQL suojaamaan SQL-injektio.

Laadittaessa näiden nimitysten kysellä on tärkeää erottaa tietoja SQL avainsanoja.

  • SELECT * FROM taulukko missä nimi = Zerg.

Tässä kokoonpanossa, järjestelmä voi ajatella, että Zerg - nimi tahansa alalla, joten sinun täytyy panna se sulkeisiin.

  • SELECT * FROM taulukko missä nimi = 'Zerg'.

On kuitenkin olemassa aikoja, jolloin arvo itsessään sisältää lainauksia.

  • SELECT * FROM taulukko missä nimi = 'Norsunluurannikko'.

Täällä käsittelemään vain osa, Norsunluurannikon, ja loput voidaan mieltää tiiminä, mikä ei tietenkään. Näin ollen, tapahtuu virhe. Sitten sinun tarvitse tällaista seulonta tietoja. Voit tehdä tämän, käytä kenoviivaa - \.

  • SELECT * FROM taulukko missä nimi = 'kissa-d \' Ivoire'.

Kaikki edellä mainitut viittaa riveihin. Jos toiminta tapahtuu useita, niin se ei tarvitse mitään tarjouksia tai viiltää. Kuitenkin, olisi vaadittava väkisin johtaa haluttujen tietojen tyypin.

On suosituksia siitä, että kentän nimi on suljettava backquotes. Tämä symboli on vasemmalla puolella näppäimistöä, yhdessä tilde "~". Tällä pyritään varmistamaan, että MySQL voisi tarkasti erottaa kentän nimi avainsanatuloksista.

Dynaaminen työtä tiedot

Hyvin usein saada mitään tietokannasta kyselyiden, luodaan dynaamisesti. Esimerkiksi:

  • SELECT * FROM pöytä, jossa numero = '$ numero'.

Täällä, muuttuja $ numero välitetään arvo määritetään kentän. Mitä tapahtuu, jos se saa 'Norsunluurannikko'? Virhe.

Tämän välttämiseksi vaivaa, tietenkin, voit sisällyttää "magic lainausmerkkejä" asetukset. Mutta nyt data seulotaan tarvittaessa ja ei tarvita. Lisäksi, jos koodi on kirjoitettu käsin, voit käyttää hieman enemmän aikaa luoda murtumista itse järjestelmää.

Riippumattoman lisäämällä slash voi käyttää mysql_real_escape_string.

$ Number = mysql_real_escape_string ($ numero);

$ Vuosi = mysql_real_escape_string ($ vuodessa);

$ Query = "INSERT INTO taulukko (numero, vuosi, luokka) ARVOT ( '$ numero', '$ vuoden, 11)".

Vaikka koodin ja määrän kasvaessa, mutta potentiaalisesti se toimisi paljon turvallisempaa.

paikkamerkit

Paikkamerkkien - eräänlainen merkkiaineiden jolloin järjestelmä tunnistaa, että tämä on oikea paikka sinun täytyy korvata erityinen tehtävä. Esimerkiksi:

$ Sate = $ mysqli-> valmistautua ( "SELECT Piirin numerosta missä nimi =?");

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

$ Sate-> Suorita ();

Tämä koodinpätkän vie koulutusta pyyntö mallin ja sitten sitoo vaihteleva määrä, ja suorittaa sen. Tämä lähestymistapa mahdollistaa jakaa kyselyn käsittely ja sen täytäntöönpanoa. Siten se voidaan tallentaa käytöstä haitallisen koodin ovat SQL-.

Mikä voisi hyökkääjä

Protection System - erittäin tärkeä tekijä, jota ei voi jättää huomiotta. Tietenkin, yksinkertainen käyntikortti sivuston on helpompi palauttaa. Ja jos se on iso portaali, palvelu, foorumia? Mitä seurauksia, jos et ajattele turvallisuudesta?

Ensinnäkin hakkeri voi rikkoa eheyden sekä pohjan ja poista se kokonaan. Ja jos sivuston ylläpitäjä tai ylläpitopalvelusi ei tee varmuuskopiota, sinun on kovat ajat. Ennen kaikkea, tunkeutuja, halkeilua samassa paikassa, voi mennä toiselle lähetetty samalla palvelimella.

Seuraavaksi on varkauksia henkilökohtaisia tietoja kävijöitä. Kuinka käyttää - kaikki rajoittaa vain mielikuvitus hakkeri. Mutta joka tapauksessa, seuraukset eivät ole kovin miellyttävää. Varsinkin jos sisälsivät taloudelliset tiedot.

Myös hyökkääjä voi yhdistää tietokantaan itse ja sitten kiristää rahaa sen palauttamista.

Väärää käyttäjät puolesta sivuston ylläpitäjä, henkilö niitä ei voi olla myös kielteisiä seurauksia mahdollisimman petoksia tosiasioita.

johtopäätös

Kaikki Artikkelin tiedot on tarkoitettu vain tiedoksi. Käytä sitä tarvitsee vain testata omia projekteja havaitessaan haavoittuvuuksia ja käsitellä niitä.

Saat enemmän perusteellinen tutkimus tekniikoita, miten toteuttaa SQL-injektio, on välttämätöntä aloittaa varsinaisen tutkimuksen ominaisuuksia ja toimintoja SQL kielen. Laskemia kyselyt, avainsanat, tietotyypit, ja sen käyttö kaiken.

Lisäksi voi tehdä ilman toiminnan ymmärtämiseksi PHP ja HTML-elementtejä toimintoja. Ensisijainen käyttö heikkoudet varten - osoitteen rivi, ja erilaiset hakukenttään. Learning PHP toimintoja, toteutustapa ja ominaisuudet selvittää, miten välttää virheitä.

Lukuisten valmiita ohjelmistotyökaluja mahdollistavat perusteellisen analyysin sivuston tunnettuja haavoittuvuuksia. Yksi suosituimmista tuotteista - Kali Linux. Tämä kuva Linux-pohjainen käyttöjärjestelmä, joka sisältää suuren määrän työkaluja ja ohjelmia, jotka voi suorittaa kattava analyysi sivuston vahvuus.

Mitä sinun täytyy tietää, miten hakata sivuston? Se on hyvin yksinkertainen - se on välttämätöntä olla tietoinen mahdollisista haavoittuvuuksista projektin tai verkkosivuilla. Varsinkin jos se on verkkokaupan online maksun, jos maksun käyttäjätiedot voi vaarantua hyökkääjä.

Ammattikäyttöön tutkimuksessa nykyisten tietoturvallisuushenkilöstöä pystyy tutustu sivuston erilaisten kriteerien ja syvyyttä. Alkaen yksinkertainen HTML-injektiot ja social engineering ja phishing.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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