OS Command Injection

ce este OS command injection?

o injecție de comandă OS este o vulnerabilitate de securitate web care permite executarea comenzilor neautorizate ale sistemului de operare. O vulnerabilitate OS command injection apare atunci când o aplicație web trimite comenzi de sistem nesanitizate și nefiltrate pentru a fi executate. Datorită validării insuficiente de intrare, un atacator ar putea injecta propriile comenzi pentru a fi operate la nivelul shell-ului. Atacatorul introduce comenzi ale sistemului de operare prin intermediul datelor furnizate de utilizator, cum ar fi cookie – uri, formulare sau anteturi HTTP.

aceasta este o vulnerabilitate periculoasă, deoarece comenzile OS furnizate de atacator sunt de obicei executate cu privilegiile aplicației vulnerabile. Prin urmare, un atacator ar putea obține controlul complet al sistemului de operare gazdă syOS command injectionstem compromițând aplicația și toate datele sale.

spre deosebire de vulnerabilitățile de injectare a codului care există atunci când un atacator poate trimite intrări executabile unui program și păcălește software-ul să ruleze acea intrare. O vulnerabilitate de injecție de comandă exploatează punctele slabe ale unui sistem neprotejat care permite executarea comenzilor arbitrare fără a fi nevoie să injectați Cod. Ambele vulnerabilități apar din lipsa validării corespunzătoare a datelor de intrare / ieșire.

comenzi utile

mai jos sunt câteva comenzi utile care vă pot oferi informații suplimentare despre sistemul de operare pe care îl atacați

scopul comenzii

Linux

ferestre

numele utilizatorului curent

whoami

whoami

sistem de Operare

uname-a

ver

configurarea rețelei

ifconfig

ipconfig / toate

conexiuni de rețea

netstat-an

netstat-an

rularea proceselor

ps-ef

lista de sarcini

modalități de injectare comenzi OS

pentru a testa cererea dumneavoastră pentru o vulnerabilitate injecție comandă încercați să utilizați metacaractere care permitecommands să fie înlănțuite împreună. Dacă sunteți în stare să rulați propria comandă, atunci aplicația web este vulnerabilă. Următoarele separatoare de comandă funcționează atât pe sistemele Windows, cât și pe cele bazate pe Unix:

  • &
  • &&
  • |
  • ||

alte sarcini utile de injecție de comandă includ comanda ping de mai jos, care va declanșa o întârziere de timp, permițându-vă să confirmați că comanda a fost executată pe baza timpului necesar aplicației pentru a răspunde. Comanda de mai jos va dura 10 secunde pentru a returna un răspuns.

& ping-c 10 127.0.0.1 &

atacatorii pot confirma, de asemenea, o vulnerabilitate a comenzii OS prin utilizarea comenzii nslookup într-un domeniu pe care îl controlează. Dacă apare privirea în sus, ei știu că injecția lor de comandă a avut succes.

diverse alte comenzi pentru a testa aplicația :

php-v vă oferă versiunea PHP care rulează pe serverul de aplicații web.

&&cat / etc / passwddisplays toți utilizatorii de pe serverul backend Linux

/etc/shadowdisplays toate parolele hash, dar numai dacă se execută cu privilegii de root.

cum să preveniți atacurile de injecție a comenzii OS

  1. apărare opțiunea 1: Evitați Apelarea directă a comenzilor OS-evitați Apelarea directă a comenzilor OS. Funcțiile bibliotecii încorporate sunt o alternativă foarte bună la comenzile sistemului de operare.
  2. opțiunea de apărare 2: valori de evacuare adăugate la comenzile OS specifice fiecărui sistem de operare – de exempluescapeshellcmd () în PHP.
  3. opțiunea de apărare 3: parametrizarea în combinație cu validarea intrărilor – dacă utilizatorul-furnizat nu poate fi evitatăparameterizarea și validarea intrărilor ar trebui să fie utilizate.

Lasă un răspuns

Adresa ta de email nu va fi publicată.