9 populāri tīmekļa lietojumprogrammu injekcijas uzbrukumu veidi

Tīmekļa lietojumprogrammu problēma ir tā, ka tās ir atklāti pakļautas miljardiem interneta lietotāju, no kuriem daudzi vēlēsies pārkāpt drošības pasākumus — neatkarīgi no iemesla.

Interneta sākumposmā viena no visizplatītākajām uzbrukuma metodēm bija vienkārša, rupja spēka izmantošana. Boti parasti veica šos uzbrukumus — vai personas, kurām bija daudz brīva laika —, kuras izmēģināja miljoniem lietotājvārdu un paroļu kombināciju, līdz atrada tādu, kas nodrošinātu piekļuvi mērķa lietojumprogrammai.

Brutāla spēka uzbrukumi vairs nav drauds, pateicoties paroļu politikām, ierobežotiem pieteikšanās mēģinājumiem un captchas. Taču kibernoziedzniekiem patīk atklāt jaunus varoņdarbus un izmantot tos jauna veida uzbrukumu veikšanai. Jau sen viņi atklāja, ka lietojumprogrammu vai tīmekļa lapu teksta laukus var izmantot, ievadot vai ievadot tajos negaidītu tekstu, kas liktu lietojumprogrammai darīt kaut ko tādu, kas tai nebija jādara. Tādā veidā notikuma vietā iekļuva tā sauktie injekcijas uzbrukumi.

Injekcijas uzbrukumus var izmantot ne tikai, lai pieteiktos lietojumprogrammā, nezinot lietotājvārdu un paroli, bet arī lai atklātu privātu, konfidenciālu vai sensitīvu informāciju vai pat nolaupītu visu serveri. Tāpēc šie uzbrukumi apdraud ne tikai tīmekļa lietojumprogrammas, bet arī lietotājus, kuru dati atrodas šajās lietojumprogrammās, un sliktākajā gadījumā arī citām saistītajām lietojumprogrammām un pakalpojumiem.

Koda injekcija

Koda injekcija ir viens no visizplatītākajiem injekciju uzbrukumu veidiem. Ja uzbrucēji zina tīmekļa lietojumprogrammas izmantoto programmēšanas valodu, sistēmu, datu bāzi vai operētājsistēmu, viņi var ievadīt kodu, izmantojot teksta ievades laukus, lai piespiestu tīmekļa serveri darīt to, ko viņi vēlas.

Šāda veida injekcijas uzbrukumi ir iespējami lietojumprogrammām, kurām trūkst ievades datu validācijas. Ja teksta ievades laukā lietotāji var ievadīt visu, ko viņi vēlas, lietojumprogramma ir potenciāli izmantojama. Lai novērstu šos uzbrukumus, lietojumprogrammai ir jāierobežo, cik vien iespējams ievades lietotājiem ir atļauts ievadīt.

Piemēram, tai ir jāierobežo paredzamo datu apjoms, jāpārbauda datu formāts pirms to pieņemšanas un jāierobežo atļauto rakstzīmju kopa.

Koda ievadīšanas ievainojamību var viegli atrast, vienkārši pārbaudot teksta ievadi tīmekļa lietojumprogrammā ar dažāda veida saturu. Kad ievainojamības tiek atrastas, tās ir vidēji grūti izmantot. Taču, ja uzbrucējam izdodas izmantot kādu no šīm ievainojamībām, var tikt zaudēta konfidencialitāte, integritāte, pieejamība vai lietojumprogrammas funkcionalitāte.

  Kā izmantot GIF kā Apple Watch fona attēlu

SQL injekcija

Līdzīgi kā koda ievadīšana, šis uzbrukums teksta ievades laukā ievieto SQL skriptu — valodu, ko izmanto lielākā daļa datu bāzu, lai veiktu vaicājuma darbības. Skripts tiek nosūtīts lietojumprogrammai, kas to izpilda tieši savā datu bāzē. Rezultātā uzbrucējs var iziet cauri pieteikšanās ekrānam vai veikt bīstamākas darbības, piemēram, nolasīt sensitīvus datus tieši no datu bāzes, modificēt vai iznīcināt datu bāzes datus vai veikt datu bāzē administratora darbības.

PHP un ASP lietojumprogrammas ir pakļautas SQL injekcijas uzbrukumiem to vecāku funkcionālo saskarņu dēļ. J2EE un ASP.Net lietotnes parasti ir vairāk aizsargātas pret šiem uzbrukumiem. Kad tiek atrasta SQL injekcijas ievainojamība — un to var viegli atrast —, iespējamo uzbrukumu apjomu ierobežos tikai uzbrucēja prasmes un iztēle. Tādējādi SQL injekcijas uzbrukuma ietekme neapšaubāmi ir augsta.

Komandu injekcija

Šie uzbrukumi ir arī iespējami, galvenokārt nepietiekamas ievades validācijas dēļ. Tie atšķiras no koda ievadīšanas uzbrukumiem ar to, ka uzbrucējs programmēšanas koda vai skriptu vietā ievieto sistēmas komandas. Tāpēc hakeram nav jāzina programmēšanas valoda, kurā ir lietojumprogramma, vai valoda, ko izmanto datubāze. Bet viņiem ir jāzina mitināšanas servera izmantotā operētājsistēma.

Ievietotās sistēmas komandas izpilda resursdatora operētājsistēma ar lietojumprogrammas privilēģijām, kas cita starpā varētu ļaut atklāt patvaļīgu serverī esošo failu saturu, parādīt servera direktoriju struktūru, mainīt lietotāju paroles. .

Šos uzbrukumus var novērst sistēmas administrators, ierobežojot serverī strādājošo tīmekļa lietojumprogrammu sistēmas piekļuves līmeni.

Vairāku vietņu skriptēšana

Ikreiz, kad lietojumprogramma ģenerētajā izvadē ievieto lietotāja ievadi, to nevalidējot vai nekodējot, tā dod iespēju uzbrucējam nosūtīt ļaunprātīgu kodu citam galalietotājam. Cross-Site Scripting (XSS) uzbrukumi izmanto šīs iespējas, lai uzticamās vietnēs ievadītu ļaunprātīgus skriptus, kas galu galā tiek nosūtīti citiem lietojumprogrammas lietotājiem, kuri kļūst par uzbrucēja upuriem.

Upuru pārlūkprogramma izpildīs ļaunprātīgo skriptu, nezinot, ka tam nevajadzētu uzticēties. Tāpēc pārlūkprogramma ļaus tai piekļūt sesijas marķieriem, sīkfailiem vai sensitīvai informācijai, ko glabā pārlūkprogramma. Ja tie ir pareizi ieprogrammēti, skripti var pat pārrakstīt HTML faila saturu.

XSS uzbrukumus parasti var iedalīt divās dažādās kategorijās: saglabātie un atspoguļotie.

Saglabātos XSS uzbrukumos ļaunprātīgais skripts pastāvīgi atrodas mērķa serverī, ziņojumu forumā, datubāzē, apmeklētāju žurnālā utt. Upuris to iegūst, kad pārlūkprogramma pieprasa saglabāto informāciju. Atspoguļotajos XSS uzbrukumos ļaunprātīgais skripts tiek atspoguļots atbildē, kas ietver serverim nosūtīto ievadi. Tas varētu būt, piemēram, kļūdas ziņojums vai meklēšanas rezultāts.

  Izlabojiet 0x87de2712 Xbox One kļūdu

XPath injekcija

Šāda veida uzbrukums ir iespējams, ja tīmekļa lietojumprogramma izmanto lietotāja sniegto informāciju, lai izveidotu XPath vaicājumu XML datiem. Šis uzbrukums darbojas līdzīgi kā SQL injekcijas: uzbrucēji lietojumprogrammai nosūta nepareizi veidotu informāciju, lai noskaidrotu, kā ir strukturēti XML dati, un pēc tam uzbrūk vēlreiz, lai piekļūtu šiem datiem.

XPath ir standarta valoda, ar kuru, tāpat kā SQL, varat norādīt atribūtus, kurus vēlaties atrast. Lai veiktu vaicājumu par XML datiem, tīmekļa lietojumprogrammas izmanto lietotāja ievadi, lai iestatītu modeli, kuram ir jāatbilst datiem. Nosūtot nepareizi veidotu ievadi, modelis var pārvērsties par darbību, kuru uzbrucējs vēlas lietot datiem.

Atšķirībā no tā, kas notiek ar SQL, XPath nav dažādu versiju. Tas nozīmē, ka XPath injekciju var veikt jebkurā tīmekļa lietojumprogrammā, kas izmanto XML datus, neatkarīgi no ieviešanas. Tas arī nozīmē, ka uzbrukumu var automatizēt; tāpēc, atšķirībā no SQL injekcijas, to var palaist pret patvaļīgu skaitu mērķu.

Pasta komandu injekcija

Šo uzbrukuma metodi var izmantot, lai izmantotu e-pasta serverus un lietojumprogrammas, kas veido IMAP vai SMTP paziņojumus ar nepareizi apstiprinātu lietotāja ievadi. Reizēm IMAP un SMTP serveriem nav spēcīgas aizsardzības pret uzbrukumiem, kā tas būtu lielākajā daļā tīmekļa serveru, un tāpēc tie varētu būt vairāk izmantojami. Ieejot caur pasta serveri, uzbrucēji var izvairīties no tādiem ierobežojumiem kā captchas, ierobežots pieprasījumu skaits utt.

Lai izmantotu SMTP serveri, uzbrucējiem ir nepieciešams derīgs e-pasta konts, lai nosūtītu ziņojumus ar ievadītajām komandām. Ja serveris ir ievainojams, tas atbildēs uz uzbrucēju pieprasījumiem, ļaujot tiem, piemēram, ignorēt servera ierobežojumus un izmantot tā pakalpojumus surogātpasta sūtīšanai.

IMAP ievadīšanu var veikt galvenokārt tīmekļa pasta lietojumprogrammās, izmantojot ziņojumu lasīšanas funkcionalitāti. Šādos gadījumos uzbrukumu var veikt, vienkārši ievadot tīmekļa pārlūkprogrammas adreses joslā URL ar ievadītajām komandām.

CRLF injekcija

Karieta atgriešanas un rindas padeves rakstzīmju ievietošana — kombinācija, kas pazīstama kā CRLF — tīmekļa veidlapas ievades laukos ir uzbrukuma metode, ko sauc par CRLF injekciju. Šīs neredzamās rakstzīmes norāda rindas beigas vai komandas beigas daudzos tradicionālajos interneta protokolos, piemēram, HTTP, MIME vai NNTP.

Piemēram, CRLF ievietošana HTTP pieprasījumā, kam seko noteikts HTML kods, var nosūtīt pielāgotas tīmekļa lapas vietnes apmeklētājiem.

Šo uzbrukumu var veikt neaizsargātām tīmekļa lietojumprogrammām, kas lietotāja ievadītajai informācijai nepiemēro pareizu filtrēšanu. Šī ievainojamība paver iespēju cita veida injekcijas uzbrukumiem, piemēram, XSS un koda ievadīšanai, un to var izraisīt arī vietnes nolaupīšana.

  Varat atkārtoti izdzīvot GameCube modernā televizorā, un tas ir brīnišķīgi

Host Header injekcija

Serveros, kuros tiek mitinātas daudzas vietnes vai tīmekļa lietojumprogrammas, resursdatora galvene kļūst nepieciešama, lai noteiktu, kurai no pastāvīgajām vietnēm vai tīmekļa lietojumprogrammām (katru no tām sauc par virtuālo resursdatoru) ir jāapstrādā ienākošais pieprasījums. Galvenes vērtība norāda serverim, kuram no virtuālajiem saimniekiem nosūtīt pieprasījumu. Kad serveris saņem nederīgu resursdatora galveni, tas parasti nodod to pirmajam virtuālajam resursdatoram sarakstā. Tā ir ievainojamība, ko uzbrucēji var izmantot, lai nosūtītu patvaļīgas resursdatora galvenes uz pirmo servera virtuālo resursdatoru.

Manipulācijas ar resursdatora galveni parasti ir saistītas ar PHP lietojumprogrammām, lai gan to var veikt arī ar citām tīmekļa izstrādes tehnoloģijām. Saimniekdatora galvenes uzbrukumi darbojas kā veicinātāji cita veida uzbrukumiem, piemēram, saindēšanās ar tīmekļa kešatmiņu. Tā sekas varētu ietvert uzbrucēju sensitīvu darbību veikšanu, piemēram, paroles atiestatīšanu.

LDAP injekcija

LDAP ir protokols, kas izstrādāts, lai atvieglotu resursu (ierīču, failu, citu lietotāju) meklēšanu tīklā. Tas ir ļoti noderīgs iekštīklos, un, ja to izmanto kā daļu no vienas pierakstīšanās sistēmas, to var izmantot lietotājvārdu un paroļu glabāšanai. LDAP vaicājumi ietver īpašu vadības rakstzīmju izmantošanu, kas ietekmē tā kontroli. Uzbrucēji var mainīt paredzēto LDAP vaicājuma darbību, ja viņi var tajā ievietot kontroles rakstzīmes.

Atkal galvenā problēma, kas pieļauj LDAP injekcijas uzbrukumus, ir nepareizi apstiprināta lietotāja ievade. Ja teksts, ko lietotājs nosūta lietojumprogrammai, tiek izmantots kā daļa no LDAP vaicājuma, to netīrot, vaicājums var izgūt visu lietotāju sarakstu un parādīt to uzbrucējam, vienkārši izmantojot zvaigznīti.

pareizajā vietā ievades virknes iekšpusē.

Injekcijas uzbrukumu novēršana

Kā mēs redzējām šajā rakstā, visi injekcijas uzbrukumi ir vērsti uz serveriem un lietojumprogrammām ar atvērtu piekļuvi jebkuram interneta lietotājam. Atbildība par šo uzbrukumu novēršanu tiek sadalīta starp lietojumprogrammu izstrādātājiem un serveru administratoriem.

Lietojumprogrammu izstrādātājiem ir jāzina riski, kas saistīti ar nepareizu lietotāja ievades validāciju, un jāapgūst paraugprakse, lai novērstu lietotāja ievadītos datus riska novēršanas nolūkos. Serveru administratoriem periodiski jāpārbauda savas sistēmas, lai atklātu ievainojamības un pēc iespējas ātrāk tās novērstu. Ir daudz iespēju veikt šos auditus vai nu pēc pieprasījuma, vai automātiski.