Mikä on SQL-injektio?

SQL-injektio on koodin injektiotekniikka, jota käytetään hyökkäämään tietopohjaisia ​​sovelluksia lisäämällä haitallisia SQL-lauseita suorituskenttään. Tietokanta on tärkeä osa mitä tahansa organisaatiota. Tätä hoitaa organisaation korkeatasoinen turvallisuus. Oletetaan ensin, mikä on SQL.

Mikä on SQL?

SQL on jäsennelty kyselykieli. Käytetään vuorovaikutukseen ja tietokannan manipulointiin.

Mitä SQL tarkalleen tekee?

  • Luo uusi tietokanta.
  • Lisää, päivitä ja poista tietueita.
  • Luo uusia kyselyjä.
  • Tallennetut menettelyt.
  • Luo näkymiä.
  • Suorita kyselyitä.
  • Aseta käyttöoikeudet.

SQL-injektio on yksi tärkeimmistä tietoturvauhista. Tämä kuuluu tietoverkkorikollisuuden alaan.

SQL: ssä meillä on käsite nimeltään SQL Injection. Tätä tekniikkaa käytetään koodin syöttämiseen. SQLi (SQL-injektio tunnetaan myös hakkerointityyppinä, ts. Injektiohyökkäyksenä.) Se tunnetaan myös nimellä web-hakkerointitekniikka.

Tämä injektio injektoi haitallisen koodin tietokantaan antamalla tietoja verkkosivulle. Näillä tuloilla on joitain ehtoja, jotka ovat aina totta. Näissä olosuhteissa hakkerit läpäisevät turvallisuuskokeet helposti. He voivat helposti saada tietoja SQL-tietokannasta. SQL-injektiolla he voivat lisätä, muokata ja poistaa tietueita tietokantaan. Tietokantaan voi kuulua kuka tahansa MySQL, SQL Server, Oracle, SQL Server jne., Mikä on laitonta.

Jos verkkosivusto tai sovellus on suunniteltu huonosti, nämä hyökkäykset voivat vahingoittaa koko järjestelmää. Tässä vaiheessa kyberturvallisuus tulee kuvaan.

SQL-injektioiden käyttäytyminen

Nämä hyökkäykset toimivat yleensä dynaamisissa SQL-lauseissa. SQL-injektio on tietokantamoottorista riippuvainen. Tämä eroaa moottorista toiseen. Kun pyydämme käyttäjän syöttämistä verkkosivulta, kuten käyttäjänimi ja salasana. Tahattomasti annamme käyttäjälle pääsyn antamaan syöte suoraan tietokantaan.

SQL-injektiotyypit

  1. Kaistan sisäinen SQL-injektio (klassinen SQL-injektio): Tässä tekniikassa hakkeri käyttää samaa tapaa hakkeroida tietokanta ja saada tietoja, ts. Tulos tietokannasta.
  1. Virhepohjainen SQL-injektio: Tämän tyyppisessä muodossa hakkeri saa tietokannan virhekuvion ja käyttää sitä. Voimme sanoa, että tämä on yhden tyyppinen kaistan sisäinen SQL-injektio.
  1. Unioniin perustuva SQL-injektio: Tämä tekniikka on myös osa kaistan sisäistä SQL-injektiota. Tässä tekniikassa käyttäjä yhdistää kyselyn ja saa tuloksen takaisin osana HTTP-vastausta.
  1. Alkuperäinen SQL-injektio (Blind SQL -injektio): Kuten nimestä voi päätellä, hakkeri ei käytä kaistaa tietojen saamiseksi tietokannasta. Hackerilla on kyky muuttaa tietokannan rakennetta tarkkailemalla tietokannan malleja. Tämä on erittäin vaarallinen SQL-injektiotyyppi. Hyökkäyksen toteuttaminen vie kauemmin. Hacker ei näe tämän tekniikan hyökkäyksen tulosta.
  1. Boolean-pohjainen (sisältöpohjainen) sokea SQL-injektio: Tämä on osa Inferencial SQL -injektiota. Tässä tekniikassa hakkeri pakottaa tietokantaan hakemaan tuloksen oikean tai väärän tilan perusteella. Tästä tilasta riippuen HTTP-vastauksen tulos muuttuu. Tällainen hyökkäys päätellä, jos käytetty hyötykuorma palasi totta tai väärin, vaikka mitään tietokannasta ei palauteta. Nämä erityisen hitaat hyökkäykset.
  1. Aikapohjainen sokea SQL-injektio: Tämä tekniikka on myös osa Inferencial SQL -injektiota. Hakkerit käyttävät tätä tekniikkaa hyötykuormien laskemiseen. Tässä tekniikassa hakkerit antavat aikaa tietokannalle kyselyn suorittamiseksi. Sillä välin hakkeri saa käsityksen tuloksesta onko se totta vai vääriä. Tämä hyökkäysprosessi on myös luonteeltaan hidas.
  1. Kaistan ulkopuolinen SQL-injektio: Tämä on ominaisuuspohjainen hyökkäys. Tämä ei ole kovin yleistä. Hakkeri käyttää tätä hyökkäystä, kun hakkerin on käytettävä erilaisia ​​kanavia hyökkäykseen ja muiden saamaan tuloksen. Kaistan ulkopuoliset SQL-injektiotekniikat ovat riippuvaisia ​​tietokantapalvelimen kyvystä tehdä DNS- tai HTTP-pyyntöjä tietojen toimittamiseksi hakkeriin.

Kuinka se toimii?

On pääasiassa kahta tapaa, joissa hyökkääjä keskittyy tietojen saamiseen:

  1. Suora hyökkäys: Suoraan käyttämällä eri arvojen yhdistelmää. Tähän hakkeri laittaa vahvistetun syötteen, joka antaa tarkan tuloksen.
  2. Tutkimus: Tietokannan analysointi antamalla erilaisia ​​tietoja. Tässä hyökkääjä tarkkailee tietokantapalvelimen vastauksia ja päättää, mikä hyökkäys on tehtävä.

Kuten jo keskustelimme SQL-injektio hakkereista, asetetaan syöttöelementtiin ehto, joka on aina totta. Tarkista seuraava esimerkki.

EX:

Oletetaan, että meillä on alla oleva kysely työntekijöiden tietojen hakemiseksi tietokannasta:

500 TAI 1 = 1

Valitse * työntekijöistä, joissa Userid = '500'

Käyttäjätunnus :

Jos meillä ei ole mitään rajoituksia käyttäjän syötteille. Sitten hakkerit voivat käyttää tätä kenttää helposti tietokannan tietoihin.

Ja kysely voi näyttää seuraavalta

Valitse * työntekijöistä, joissa Käyttäjätunnus = 500 TAI 1 = 1;

Tämä kysely palauttaa tiedot tietokannasta, koska 1 = 1 palaa aina totta. Tällä tavalla tila tulee totta. Tämä vaikuttaa haavoittuvalta. Tämä on erittäin vaarallista organisaatiolle. Ajattele esimerkiksi pankkisektoria. Missä käyttäjillä on verkkopankkitiedot salasanat, saldotiedot jne.

Tämä tekniikka on hakkereille erittäin helppoa saada tietoa. Antamalla vain joitain tietoja tietokantaan.

Hakkerit saavat tietoja lisäämällä vain TAI ja = lisäämällä ne tietokantaan.

Käyttäjätunnus:

”Tai” ”=”

Salasana:

”Tai” ”=”

Palvelimella loppukysely suoritetaan oikein, virhettä ei tapahdu. Voit myös käyttää 'OR' 1 '=' 1 saadaksesi tietoja tietokantapalvelimelta.

Nyt herää kysymys, kuinka ylläpidämme tietokantamme turvallisuutta?

Ja vastaus on käyttämällä SQL-parametreja.

Lisäämällä lisäparametreja kyselyyn, kun se suoritetaan. Nämä hyökkäykset voidaan helposti välttää joillakin alla olevilla tekniikoilla.

Tallennetut menettelyt, valmistetut lausunnot, säännölliset lausekkeet, tietokantayhteyden käyttäjän käyttöoikeudet, virhesanomat jne. Ovat estämistekniikoita .

Vielä yksi asia, jonka meidän pitäisi ajatella, on myös järkevää, että sovelluksessa on erilaisia ​​tietokantoja eri tarkoituksiin.

Vielä yksi asia on testaus. Tietokannan testaaminen eri olosuhteiden varalta on myös paras tapa.

johtopäätös

Tietokannan luominen on tärkeä osa. Riski saada tietoja hakkereiden kädessä ei ole hyvä mihinkään sovellukseen. Joten tietokantaa luotaessa meidän on noudatettava joitain helppoja vaiheita estääksesi tämän menetyksen, tähän sopiva lause on ”Ehkäisy on parempi kuin parannus”.

Suositellut artikkelit

Tämä on opas Mikä on SQL-injektio. Tässä keskustellaan käyttäytymisestä, sen toiminnasta ja SQL-injektiotyypeistä. Voit myös käydä läpi muiden ehdotettujen artikkeleidemme saadaksesi lisätietoja -

  1. Mikä on SQL Server?
  2. Mikä on SQL | Kyselykieli selitetty
  3. Mikä on SQL-kehittäjä?
  4. SQL-komentojen päivitys
  5. Säännölliset lausekkeet Java