OS Command Injection

vad är OS command injection?

en OS-kommandoinjektion är en webbsäkerhetssårbarhet som möjliggör körning av obehöriga operativsystemkommandon. En OS – kommandoinjektionssårbarhet uppstår när en webbapplikation skickar osanitiserade, ofiltrerade systemkommandon som ska köras. På grund av otillräcklig inmatningsvalidering kan en angripare injicera sina egna kommandon som ska drivas på skalnivån. Angriparen introducerar operativsystemkommandon via användarlevererade data som cookies, formulär eller HTTP-rubriker.

detta är en farlig sårbarhet eftersom de angripare-levererade OS-kommandona vanligtvis körs med privilegierna för den sårbara applikationen. Därför kan en angripare få fullständig kontroll över värdoperationen syOS command injectionstem som äventyrar applikationen och alla dess data.

till skillnad från kodinjektionssårbarheter som finns när en angripare kan skicka körbar inmatning till ett program och lurar programvaran att köra den inmatningen. En kommandoinjektionssårbarhet utnyttjar svagheterna i ett oskyddat system som möjliggör exekvering av godtyckliga kommandon utan att behöva injicera kod. Båda sårbarheterna uppstår på grund av brist på korrekt input/output data validering.

användbara kommandon

Nedan följer några användbara kommandon som kan ge dig ytterligare information om operativsystemet du attackerar

syftet med kommandot

Linux

fönster

nuvarande användares namn

whoami

whoami

operativsystem

uname-a

ver

nätverkskonfiguration

ifconfig

ipconfig / all

nätverksanslutningar

netstat-an

netstat-an

löpande processer

ps-ef

tasklist

sätt att injicera OS-kommandon

för att testa din ansökan om en kommandoinjektionssårbarhet försök använda metatecken som möjliggör att kommandon ska kedjas ihop. Om du kan köra ditt eget kommando är webbapplikationen sårbar. Följande kommandoavskiljare fungerar på både Windows-och Unix – baserade system:

  • &
  • &&
  • |
  • ||

andra nyttolaster för kommandoinjektion inkluderar ping-kommandot nedan som utlöser en tidsfördröjning, så att du kan bekräfta att kommandot kördes baserat på den tid som applikationen tar för att svara. Kommandot nedan tar 10 sekunder för att returnera ett svar.

& ping-c 10 127.0.0.1 &

angripare kan också bekräfta en OS-kommandosårbarhet genom att använda kommandot nslookup till en domän de kontrollerar. Om uppslagningen inträffar vet de att deras kommandoinjektion lyckades.

olika andra kommandon för att testa din ansökan :

php-v ger dig PHP version som körs på webbapplikationer server.

&&cat / etc/passwddisplays alla användare på backend Linux-servern

/etc / shadowdisplays alla hashade lösenord men bara om du kör med root-privilegier.

hur man förhindrar OS-kommandoinjektionsattacker

  1. Försvarsalternativ 1: Undvik att ringa OS-kommandon direkt-undvik att ringa OS-kommandon direkt. Inbyggda biblioteksfunktioner är ett mycket bra alternativ till OS-kommandon.
  2. försvar alternativ 2: Escape värden läggs till OS kommandon som är specifika för varje OS – för exampleescapeshellcmd() i PHP.
  3. försvars alternativ 3: parametrering i samband med Input Validation – Ifuser-levereras kan inte undvikasparametreringochinput validationbör vara i bruk.

Lämna ett svar

Din e-postadress kommer inte publiceras.