Webprogrammering

Sårbarheter i løpetilstand i webapplikasjoner

Sårbarheter i løpetilstand i webapplikasjoner
Når det kreves at en webapplikasjon konfigurert for å administrere funksjoner i en fast rekkefølge for å utføre to eller flere operasjoner samtidig, oppstår et angrep i løpet av løpet. Denne teknikken utnytter en tidsforsinkelse mellom når en tjeneste introduseres og når en sikkerhetskontroll oppstår. Dette angrepet kan utføres på en av de to måtene, basert på flertrådede applikasjoner: inntrengning påført ikke-klarerte prosesser og inntrengning påført en pålitelig prosess som kan ha samme og like rettigheter.

Ulike prosesser kan samhandle med hverandre uten tilstrekkelige tiltak. Disse angrepene er også kjent som Time of Check-angrep, Time of Use-angrep eller TOC / TOU-angrep. Sårbarheter i race-tilstand er tilfeldigvis i utgangspunktet på grunn av grunnleggende programmeringsfeil som utviklere vanligvis lager, og disse feilene har vist seg å være kostbare. Ondsinnede enheter har utnyttet raseforhold for mange ondsinnede formål, i.e., fra å få gratis kuponger for å rane penger fra online-kontoer og verdipapirforetak.

La oss anta at to parallelle kjøringstråder prøver å heve en global variabels verdi med 5. Til slutt vil den globale variabelen ha en verdi på 10. Imidlertid, hvis alle tråder kjøres samtidig, kan kjøringen være feil uten ressurslås eller synkronisering. Når den første tråden gjør noen manipulasjoner mot den globale variabelen, leser den andre tråden den og begynner å gjøre noen andre manipulasjoner. I dette tilfellet vil ikke den endelige verdien være som forventet.

Dette skjer siden effekten av en trådavslutning avhenger av utfallet av den andre. Når de to trådene kjøres samtidig, vil det få utilsiktede konsekvenser.

Omfang av angrep på løpsbetingelser:

Tenk deg at noe mer kritisk blir utført av de to trådene i eksemplet ovenfor, som å veksle penger mellom bankkontoer. For å sende pengene riktig, må programmet utføre disse oppgavene i denne sekvensen; Sjekk om det er nok saldo på avsenderens konto, legg til penger på mottakerens konto, og trekk deretter fra avsenderens konto. Men hvis du samtidig sender inn to forespørsler, kan du kanskje utløse en tilstand der sekvensen for trådutførelse endres. I en situasjon som denne vil du ende opp med et annet beløp enn forventet.

Rasstilstandssårbarhet ble funnet av Egor Homakov på Starbucks-nettstedet. Han oppdaget en måte å skape uendelig mye kreditt på Starbucks gavekort gratis ved å bruke forskjellige nettlesere med forskjellige informasjonskapsler.

Det fremtredende Meltdown-angrepet er et eksempel på sårbarhet i rasetilstand. I nedsmeltingsangrepet utløses svakheten ved parallell behandling av datainnhenting fra minnet og autentisering av om en bruker får tilgang til minnet eller ikke. Denne feilen gjør det mulig for et verktøy å unngå standard privilegiekontroller som skiller angrepsmekanismen fra tilgang til OS-data. Dette smutthullet resulterer i at enhver uautorisert prosess kan se data og informasjon fra hvilken som helst annen adresse som er koblet til gjeldende fremdriftsstatus i minnet. I ferd med feil utførelse vil informasjon fra en ikke godkjent adresse ofte stables raskt i hurtigbufferen til CPUen, hvorfra informasjonen kan gjenopprettes.

Virkelige angrepsscenarier:

Ved å sende flere forespørsler til webserveren kontinuerlig, kan du søke og manipulere løpsforhold i webapplikasjoner. Hvis du vil se om du kan ta ut mer penger enn du har på bankkontoen din, ved hjelp av curl-funksjonen, kan du samtidig sende flere uttaksforespørsler til serveren.

krølle (trekke 50000) & (trekke 50000) & (trekke 50000) & (trekke 50000) & (trekke 50000) & (trekke 50000)

Jo flere krav du legger inn på kort tid, jo større er sjansene for at angrepet ditt vil fungere.

Videre, hvis du sender asynkrone oppfølgingsforespørsler, vil du følge en bruker flere ganger i stedet for å sende et feilrespons. Jeg.e., hvis du legger til en falsk topptekst som inneholder% s mens du slipper forespørsler ved hjelp av turboinntrenger, og limer inn følgende pythonkode:

def followReqs (mål, ordlister):
engine = RequestEngine (endpoint = target.endepunkt,
concurrentConnections = 40,
requestsPerConnection = 100,
rørledning = Falsk
)
for jeg innen rekkevidde (40):
motor.kø (mål.req, str (i), gate = 'sjekk')
motor.openGate ('sjekk')
motor.fullført (timeout = 60)
def responseHandle (req, interessant):
bord.legg til (req)

Du vil se en Attack-knapp. Etter å ha trykket på det, sender Turbo Intruder 40 spørsmål og skanner statuskodene. Hvis du ser flere svar med 201 generert status, indikerer det flere ganger at du har fulgt personen.

Det er et sårbarhetssårbarhet der du kan få tilgang til flere konsoller som tilbys gratis kontoer. De fleste nettsteder som tilbyr gratis konsoller har gratis kontoer, standard- og premiumpakker. Gratis kontoer gir bare 2 eller 3 konsoller per bruker. For å bryte denne grensen og bruke ubegrensede konsoller, trå inn GET-forespørselen ved å bruke NULL-nyttelast flere ganger, som 100 eller 200. Og deretter sletter du en av konsollene manuelt fra brukergrensesnittet mens tråder kjører.

Konklusjon:

Som et middel for å undergrave tilgangskontrollene, er løpsforhold inkludert. Ethvert program som er avhengig av mekanismer for tilgangskontroll, kan være sårbart. På finansinstitusjonenes nettsteder utnytter hackere mesteparten av tiden løpsforhold. Siden det kan føre til ubegrensede økonomiske fordeler for hackeren hvis en løpstilstand kan oppdages på en viktig funksjon som kontantuttak, pengeoverføring eller betaling med kredittkort. Netthandelsplattformer, videospill og elektroniske stemmetjenester er andre høyrisiko-teknologier. Å implementere sikker samtidighet er hemmeligheten for å unngå racingforhold. Og du kan også bruke ressurslås. Det vil også være en låsefunksjon innebygd for programmeringsspråk med samtidige evner som hjelper til med å forhindre slike forhold. I tillegg følger følgende sikre kodingsstandarder, i.e., minst privilegium konsept og revisjonskode vil redusere programmets sjanse for å bryte.

Installer det siste OpenRA-strategispillet på Ubuntu Linux
OpenRA er en Libre / Free Real Time Strategy-spillmotor som gjenskaper de tidlige Westwood-spillene som den klassiske Command & Conquer: Red Alert. Di...
Installer nyeste Dolphin Emulator for Gamecube & Wii på Linux
Dolphin Emulator lar deg spille de valgte Gamecube- og Wii-spillene dine på Linux Personal Computers (PC). Som en fritt tilgjengelig og åpen kildekod...
Hvordan bruke GameConqueror Cheat Engine i Linux
Artikkelen dekker en guide om bruk av GameConqueror-juksemotoren i Linux. Mange brukere som spiller spill på Windows bruker ofte "Cheat Engine" -appli...