Tokie skaitytojai kaip jūs padeda palaikyti MUO. Kai perkate naudodami nuorodas mūsų svetainėje, galime uždirbti filialų komisinius. Skaityti daugiau.

Įpurškimo atakos yra vienas iš labiausiai paplitusių būdų, kaip įsilaužėliai atakuoja sistemas, nes tai leidžia jiems lengvai paleisti daugybę komandų ir kodų. OS komandų injekcija yra viena iš tokių injekcijos atakų, apie kurią turite žinoti. Taip išnaudojamas pažeidžiamumas, į kurį sistemos, duomenų bazių ir žiniatinklio programų administratoriai turėtų žiūrėti labai rimtai.

Taigi, kas yra OS komandų injekcijos ataka?

OS komandų įpurškimo apibrėžimas

OS komandų injekcija leidžia kenkėjiškam užpuolikui paleisti bet kurią norimą komandą išnaudodamas pažeidžiamą operacinę sistemą, programą, programą, duomenų bazę ar papildinį. Taip atsitinka, kai programoms nepavyksta tinkamai patvirtinti ir išvalyti parametrų, kuriuos jos naudoja iškviesdamos apvalkalo funkcijas, pvz. sistema () arba vykdyti () vykdyti sistemos komandas.

Norint geriau suprasti OS komandų įpurškimo aptikimą ir naudojimą, naudinga šią problemą išnagrinėti trijose pagrindinėse kategorijose.

instagram viewer

1. Tiesioginės komandos įpurškimas

Apsvarstykite tai iš užpuoliko perspektyvos. Kibernetinis užpuolikas nustato, kad programa vykdo konkrečią sistemos komandą; jie įveda kenkėjišką komandą kaip tikėtinų argumentų dalį. Tada programa vykdo pradinę komandą, po kurios eina kenkėjiška.

Užpuolikas taiko įvairius metodus, kad surastų tokį pažeidžiamumą. Lengviausias būdas su tuo kovoti – nuolat atnaujinti operacinę sistemą; tai galite padaryti bendradarbiaudami su kompetentinga IT komanda. Turėtumėte vengti visų programų ir programų, kurios gali sukelti sistemos pažeidžiamumą, nes užpuolikas gali tiesiogiai įterpti kodą, o žala yra nenuspėjama.

2. Netiesioginės komandos įpurškimas

Netiesioginės komandos injekcijos atveju užpuolikas tiesiogiai neįveda kodo ar komandos į sistemą. Tam jie naudoja pažeidžiamą programą ar programą sistemoje. Pažeidžiamumas sukuria tiltą tarp užpuoliko ir operacinės sistemos. Pasinaudodamas šiuo ryšiu, užpuolikas siekia paleisti kenkėjiškus kodus ir komandas.

Užpuolikas atlieka daugybę bandymų, kad nustatytų šį pažeidžiamumą, ir nustato, kad programinė įranga naudoja duomenis iš išorinio šaltinio, pvz., failo arba aplinkos kintamojo, kad iškviestų sistemos komandą. Tada užpuolikas pakeičia išorinio šaltinio turinį, todėl jame dabar yra kenkėjiška komanda. Tada tai vykdoma kartu su pradinės programos instrukcijomis.

Pagrindinis skirtumas tarp tiesioginės ir netiesioginės komandų injekcijos yra tas, kad užpuolikas naudoja programą, kad galėtų susisiekti su operacine sistema. Tačiau nėra jokio realaus skirtumo tarp žalos, kurią gali padaryti dvi injekcijos formos, todėl reikia atsižvelgti į abi puses. Štai kodėl turėtumėte įsitikinti, kad jūsų tinklo programos yra patikimos ir reikalingos. Nelaikykite savo įrenginyje programų, kuriomis nepasitikite.

3. Aklosios komandos injekcija

Kitas OS komandų įpurškimo tipas yra aklųjų komandų įpurškimas. Tai reiškia, kad programa nepateikia jokios išvesties iš komandos HTTP atsakyme. Užpuolikas naudoja įvairius metodus, pvz., laiko delsą ir išvesties maršrutą, kad išnaudotų šį pažeidžiamumą.

Įsivaizduokite, kad ieškote svetainės, o „/?search=id“ reikšmė URL keičiasi su kiekviena paieška. ID reikšmė čia gali būti vartotojo puslapis, produkto nuotraukos adresas arba bet kuris svetainės puslapis. Užpuolikas gali gauti skirtingus rezultatus pakeisdamas ID reikšmę. Sunku tai padaryti rankiniu būdu, bet yra tokius įrankius kaip „Burp Suite“. už tai. Vėliau užpuolikas puslapyje aptinka keistenybę: gali būti grąžinta ID reikšmė, kuri, nors ir nerodė jokių rezultatų, svetainės atsakymas buvo 200, tai rodo, kad viskas gerai. Tokiu atveju užpuolikas gali panaudoti aklosios komandos injekciją.

Tokia technika kaip laiko delsimas yra ypač naudinga. Kadangi atsidaręs puslapis bus tuščias, negausite jokio atsakymo, bet galbūt vis tiek galėsite surinkti informacija apie tai, kas saugoma duomenų bazėje, pagrįsta laiko delsa, kuri įkelia puslapį tik tada, kai yra tam tikras simbolis pateikti. Tai per daug atima daug laiko, kad būtų atliktas rankiniu būdu, tačiau daugybė įrankių gali automatizuoti ataką.

Puolimo scenarijaus pavyzdys

Panagrinėkime visa tai, kas išdėstyta aukščiau, pateikdami pavyzdį. Įsivaizduokite, kad turite apsipirkimo programą, kuri leidžia vartotojui pamatyti, ar produktų yra sandėlyje. Norėdami pasiekti visą šią informaciją, naudokime tokį URL kaip nurodyta toliau:

example_unsafe_store.com/stockStatus? productID=245&storeID=

Įsivaizduokite, kad produkto ir parduotuvės ID kaip argumentus perduodama apvalkalo komandai, pvz., „stockstat.pl 245 38“, nes programa turės užklausti senų įrašų. Jei kūrėjas nesiima veiksmų prieš komandų injekcijas, užpuolikas gali išsiųsti įvestį norimai komandai vykdyti:

& aidas ši_kenksminga_komanda &

Jei šis įrašas patenka į produkto ID parametrą, programos vykdoma komanda bus tokia:

stockstat.pl & aidas ši_kenksminga_komanda & 38

Echo komanda yra naudingas būdas aptikti komandų injekcijas ir užtikrinti, kad išvestyje būtų rodoma nurodyta eilutė. „&“ simbolis yra a apvalkalo komandų skyriklis, todėl vykdomos trys atskiros komandos, viena po kitos. Dėl to vartotojui grąžinama išvestis bus tokia:

Klaida -produkto ID nerastas
ši_kenksminga_komanda
38: komandą nerastas

Čia „stockstat.pl“ failas įvykdė komandą be argumentų, kurių tikėjosi, todėl grąžino klaidos pranešimą. Tada paleido užpuoliko sušvirkšta aido komanda ir užpuolikas ekrane pamatė įvestą išraišką. Pradinis argumentas „38“ buvo paleistas kaip klaidas sukelianti komanda.

Kaip apsisaugoti nuo OS komandų injekcijų

Nors komandų įpurškimas yra galingas ir žalingas atakos vektorius, yra keletas gudrybių, kaip to išvengti. OS komandų įpurškimo atakų priežastis yra tam tikrų operacinės sistemos komandų vykdymas naudojant programą. Turite tai sustabdyti. Yra keletas klausimų, kuriuos reikia apsvarstyti:

  1. Turite neleisti visiems, turintiems prieigą prie programos, paleisti kodą.
  2. Turėtumėte neleisti visiems, turintiems prieigą prie programos, teikti serveriui užklausas su sintaksinėmis išraiškomis.
  3. Turite užšifruoti frazes, kurių užklausas pateikia visi, turintys prieigą.

Peržiūrėkime kiekvieną elementą po vieną. Geras pirmosios problemos sprendimas yra naudokite baltojo sąrašo metodą kad niekas, pasiekęs programos sluoksnį, negalėtų vykdyti tam tikrų kodų ar užklausų. Bet kas, kurio nenustatysite, negalės paleisti kodo.

Antrojo sprendimo sprendimas yra nepriimti kai kurių komandose naudojamų tekstinių posakių. Vartotojas gali įvesti tik skaitines reikšmes. Taikykite tai kartu su baltojo sąrašo metodu ir turėsite daug saugesnę sistemą.

Trečias punktas yra apie sintaksinių parametrų, tokių kaip įvestas simbolis ir tarpai, šifravimą. Dėl to baltojo sąrašo metodas, sintaksinis įvesties tikrinimas ir įvesties šifravimas turėtų apsaugoti jus nuo OS komandų įvedimo.

Injekcijos atakos vystosi kasdien

Yra daug injekcijos metodų su skirtingais atakos būdais, pvz., OS komanda, SQL, SSI ir XPath. Nelengva bandyti užkirsti kelią kiekvienam iš jų. Nepamirškite, kad visos šios atakos vystosi kiekvieną dieną ir naudojasi nedideliais pažeidžiamumais, kurių kūrėjai nepastebėjo. Štai kodėl labai svarbu, kad jūs visada būtumėte naujienos ir atidžiai stebėtumėte naujausius pokyčius kibernetinio saugumo pasaulyje.