Veebiprogrammeerimine

Veebirakenduste võistlusolukorra haavatavused

Veebirakenduste võistlusolukorra haavatavused
Kui fikseeritud järjestuses funktsioone haldama konfigureeritud veebirakendus on vajalik kahe või enama toimingu samaaegseks sooritamiseks, toimub võistlusolukorra rünnak. See tehnika kasutab aja viivitust teenuse kasutuselevõtmise ja ohutuskontrolli vahel. Selle rünnaku võib läbi viia kahel viisil, tuginedes mitmikeermelistele rakendustele: ebausaldusväärsete protsesside sissetung ja usaldusväärse protsessi sissetung, millel võivad olla samad ja võrdsed õigused.

Erinevad protsessid võivad omavahel suhelda ilma piisavate meetmeteta. Neid rünnakuid nimetatakse ka rünnaku kontrollimise ajal, rünnaku kasutusaeg või TOC / TOU rünnakuteks. Võistlustingimuste haavatavused esinevad esmajoones põhiliste programmeerimisvigade tõttu, mida arendajad tavaliselt loovad, ja need tõrked on osutunud kulukaks. Pahatahtlikud üksused on kasutanud võistlustingimusi paljudel pahatahtlikel eesmärkidel, s.t.e., alates tasuta kupongide saamisest, et röövida raha veebikontodelt ja investeerimisühingutelt.

Oletame, et kaks paralleelset teostusniiti üritavad globaalse muutuja väärtust 5 võrra tõsta. Lõppkokkuvõttes oleks globaalse muutuja väärtus siis 10. Kui kõik lõimed töötavad samaaegselt, võib käivitamine olla vale ilma ressursilukkude ja sünkroonimiseta. Kui esimene lõim teeb selle globaalse muutujaga mõningaid manipuleerimisi, loeb teine ​​lõime selle ette ja hakkab tegema muid manipuleerimisi. Sel juhul ei oleks lõplik väärtus ootuspärane.

See juhtub, kuna ühe lõime katkestamise mõju sõltub teise lõime tulemusest. Kui kaks lõime käivitatakse samaaegselt, on sellel soovimatuid tagajärgi.

Võistlusseisundi rünnakute ulatus:

Kujutage ette, et ülaltoodud näite kahe lõime abil viiakse läbi midagi veidi kriitilisemat, näiteks raha vahetamine pangakontode vahel. Raha õigeks saatmiseks peab programm neid ülesandeid selles järjestuses täitma; Kontrollige, kas saatja kontol on piisavalt saldot, lisage raha saaja kontole ja seejärel saatja kontolt maha. Kuid kui esitate samaaegselt kaks taotlust, võite käivitada tingimuse, milles lõime täitmise järjestus muutub. Sellises olukorras jõuate oodatust erineva summani.

Võistlusolukorra haavatavuse leidis Egor Homakov Starbucksi veebisaidilt. Ta avastas võimaluse luua lõpmatul hulgal krediiti Starbucksi kinkekaartidele tasuta, kasutades erinevaid brausereid koos erinevate küpsistega.

Silmapaistev Meltdowni rünnak on näide võistlustingimuste haavatavusest. Sulamisrünnakus käivitab nõrkuse mälust andmete otsimise paralleelne töötlemine ja autentimine, kas kasutajal on juurdepääs mälule või mitte. See viga võimaldab tööriistal vältida tavapäraseid privileegide kontrolle, mis eraldavad rünnakumehhanismi OS-i andmetele juurdepääsust. Selle lünga tulemuseks on lubada mis tahes volitamata protsessil vaadata andmeid ja teavet mis tahes muult aadressilt, mis on seotud mälu praeguse olekuga. Vigase täitmise käigus laotakse heakskiitmata aadressilt saadud teave kiiresti kiiresti protsessori vahemällu, kust teavet saab taastada.

Tegeliku rünnaku stsenaariumid:

Esitades veebiserverile pidevalt arvukalt taotlusi, saate veebirakendustes otsida ja manipuleerida võistlustingimustega. Kui soovite näha, kas saate curl-funktsiooni abil välja võtta rohkem raha, kui teil on oma pangakontol, võite samaaegselt serverile saata mitu väljamaksetaotlust.

lokkima (eemalda 50000) & (võta 50000) & (võta 50000) & (võta 50000) & (võta 50000) & (võta 50000)

Mida rohkem nõudmisi lühikese aja jooksul esitate, seda suurem on tõenäosus, et teie rünnak toimib.

Veelgi enam, kui saadate asünkroonseid järelepärimisi, jälgite veateate saatmise asemel mitut kasutajat. Mina.e., kui lisate võltsitud päise, mis sisaldab% s, samal ajal kui turbo sissetungija abil päringuid loobute, ja kleepige järgmine pythoni kood:

def followReqs (target, wordlists):
mootor = RequestEngine (tulemus = sihtmärk.lõpp-punkt,
samaaegsed ühendused = 40,
requestPerConnection = 100,
torujuhe = vale
)
i jaoks vahemikus (40):
mootor.järjekord (sihtmärk.req, str (i), värav = 'kontroll')
mootor.openGate ('kontroll')
mootor.täielik (aegumine = 60)
käsk (req, huvitav):
tabel.lisa (nõudma)

Näete nuppu Attack. Pärast selle vajutamist esitab Turbo Intruder 40 päringut ja skaneerib olekukoodid. Kui näete mitut vastust olekuga 201 genereeritud, näitab see mitu korda, kui olete inimest jälginud.

On võistlusolukorra haavatavus, kus saate juurde pääseda mitmele tasuta kontodele pakutavale konsoolile. Enamikul tasuta konsoole pakkuvatel veebisaitidel on tasuta kontod, standard- ja premium-paketid. Tasuta kontod pakuvad kasutaja kohta ainult 2 või 3 konsooli. Selle piiri ületamiseks ja piiramatute konsoolide kasutamiseks tungige GET-päringusse mitu korda NULL-i kasulike koormustega, näiteks 100 või 200. Ja siis kustutage üks konsoolid käsitsi kasutajaliidese juurest niitide töötamise ajal.

Järeldus:

Pääsukontrolli õõnestamiseks on lisatud võistlustingimused. Iga juurdepääsukontrolli mehhanismidest sõltuv programm võib olla haavatav. Enamasti kasutavad häkkerid finantsasutuste veebisaitidel võistlustingimusi. Kuna see võib tuua häkkerile piiramatu rahalise kasu, kui võidakse avastada võistlustingimus elutähtsate funktsioonide puhul nagu sularaha väljavõtmine, rahaülekanne või krediitkaardimakse. E-kaubanduse platvormid, videomängud ja veebihääletusteenused on muud kõrge riskiga tehnoloogiad. Ohutu samaaegsuse rakendamine on võistlustingimuste vältimise saladus. Ja võite kasutada ka ressursilukke. Samuti on sisseehitatud lukustusfunktsioon programmeerimiskeeltele, millel on samaaegsusvõime, mis aitab selliseid tingimusi vältida. Lisaks järgides turvalisi kodeerimisstandardeid, s.t.e., vähim privileegide kontseptsioon ja auditeerimiskood vähendavad programmi rikkumise võimalust.

Parimad Linuxi mängupuldi kaardistamise rakendused
Kui teile meeldib mängida Linuxis mänge tavalise klaviatuuri ja hiire sisestussüsteemi asemel mängupuldiga, on teie jaoks mõned kasulikud rakendused. ...
Kasulikud tööriistad Linuxi mängijatele
Kui teile meeldib Linuxis mänge mängida, on tõenäoline, et olete mängukogemuse parandamiseks kasutanud selliseid rakendusi ja utiliite nagu Wine, Lutr...
HD Remastered Games Linuxile, millel pole kunagi varem Linuxi väljalaset olnud
Paljud mängude arendajad ja kirjastajad pakuvad frantsiisi eluea pikendamiseks välja vanade mängude HD-remasteri. Palun fännid, kes soovivad ühilduvus...