OS Command Injection

co to jest OS command injection?

wstrzykiwanie poleceń systemu operacyjnego to luka w zabezpieczeniach sieciowych, która umożliwia wykonywanie nieautoryzowanych poleceń systemu operacyjnego. Luka w wstrzykiwaniu poleceń systemu operacyjnego pojawia się, gdy aplikacja internetowa wysyła niezantyfikowane, niefiltrowane Polecenia systemowe do wykonania. Ze względu na niewystarczającą walidację danych wejściowych atakujący mógł wstrzykiwać własne polecenia do obsługi na poziomie powłoki. Atakujący wprowadza polecenia systemu operacyjnego za pośrednictwem danych dostarczonych przez użytkownika, takich jak pliki cookie, formularze lub nagłówki HTTP.

jest to niebezpieczna Luka, ponieważ polecenia systemu operacyjnego dostarczane przez atakującego są zwykle wykonywane z uprawnieniami podatnej aplikacji. W związku z tym atakujący może uzyskać pełną kontrolę nad hostem obsługującym syOS command injection stem narażając aplikację i wszystkie jej dane.

w przeciwieństwie do luk w zabezpieczeniach code injection, które istnieją, gdy atakujący może przesłać plik wykonywalny do programu i oszukać oprogramowanie, aby uruchomiło ten plik. Luka command injection wykorzystuje słabe strony niezabezpieczonego systemu, co umożliwia wykonywanie dowolnych poleceń bez konieczności wstrzykiwania kodu. Obie luki wynikają z braku poprawnej walidacji danych wejściowych/wyjściowych.

przydatne polecenia

Poniżej znajdują się przydatne polecenia, które mogą dać ci więcej informacji na temat atakowanego systemu operacyjnego

cel dowodzenia

Linux

okna

nazwa bieżącego użytkownika

whoami

whoami

System Operacyjny

uname-a

ver

konfiguracja sieci

ifconfig

ipconfig / wszystkie

połączenia sieciowe

netstat-an

netstat-an

uruchomione procesy

ps-ef

tasklist

sposoby wstrzykiwania poleceń systemu operacyjnego

aby przetestować aplikację pod kątem podatności na wstrzykiwanie poleceń, spróbuj użyć metaznaczników, które umożliwiają łączenie poleceń w łańcuch. Jeśli jesteś w stanie uruchomić własne polecenie, aplikacja internetowa jest podatna na ataki. Poniższe separatory poleceń działają zarówno w systemach Windows, jak i Unix:

  • &
  • &&
  • |
  • ||

inne polecenia iniekcji obejmują polecenie ping poniżej, które spowoduje opóźnienie czasowe, co pozwala potwierdzić, że polecenie zostało wykonane na podstawie czasu, który aplikacja potrzebuje, aby odpowiedzieć. Poniższe polecenie zajmie 10 sekund, aby zwrócić odpowiedź.

& ping-c 10 127.0.0.1 &

atakujący mogą również potwierdzić lukę w poleceniu systemu operacyjnego, wykorzystując polecenie nslookup do kontrolowanej przez nich domeny. Jeśli pojawi się look up, wiedzą, że ich wstrzyknięcie komend zakończyło się sukcesem.

różne inne polecenia do testowania aplikacji:

php-v daje wersję PHP działającą na serwerze aplikacji internetowych.

&&cat /etc/passwd wyświetla wszystkich użytkowników na serwerze Linux backend

/etc/shadow wyświetla wszystkie hashowane hasła, ale tylko jeśli korzystasz z uprawnień roota.

jak zapobiec atakom OS command injection

  1. opcja obrony 1: Unikaj bezpośredniego wywoływania poleceń systemu operacyjnego-unikaj bezpośredniego wywoływania poleceń systemu operacyjnego. Wbudowane funkcje biblioteczne są bardzo dobrą alternatywą dla komend systemu operacyjnego.
  2. opcja obrony 2: Escape wartości dodane do poleceń systemu operacyjnego specyficznych dla każdego systemu operacyjnego – na przykładescapeshellcmd () w PHP.
  3. Defense option 3: parametryzacja w połączeniu z walidacją danych wejściowych-jeśli nie można uniknąć zastosowania funkcji User-suppliedparametryzation andinput validation should be in used.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.