command-injection-testing
Testuj aplikacje na podatności command injection – wykrywaj i zabezpieczaj przed wykonaniem arbitralnych poleceń systemowych.
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Umiejętność do profesjonalnego testowania podatności command injection w aplikacjach webowych i systemowych. Nauczysz się identyfikować punkty wykonywania poleceń, testować różne separatory i techniki wstrzykiwania, a także wykrywać zaślepione ataki poprzez opóźnienia czasowe i kanały zewnętrzne. Zawiera praktyczne przykłady payload'ów dla Linux i Windows, metody czytania plików, pisania danych oraz tworzenia reverse shell'i. Idealna dla pentesterów, audytorów bezpieczeństwa i deweloperów chcących zrozumieć mechanizm tej krytycznej klasy podatności.
Jak używać
Zidentyfikuj w aplikacji funkcje, które mogą wykonywać polecenia systemowe – typowe punkty to ping, DNS lookup, operacje na plikach, wyświetlanie informacji systemowych, przeglądanie logów lub przywracanie kopii zapasowych.
Przetestuj podstawowe separatory poleceń, wstawiając je do pola wejściowego: średnik (;), ampersand (&), pipe (|), logiczne operatory (&&, ||) oraz backtick (`) lub $() dla podstawienia poleceń. Zacznij od prostych testów, np. "127.0.0.1; id" lub "127.0.0.1 && whoami".
Jeśli wynik polecenia nie jest widoczny w odpowiedzi, zastosuj techniki zaślepionego testowania – użyj opóźnień czasowych (sleep 5) lub wyślij dane na zewnętrzny serwer (curl, wget, nslookup z danymi w subdomain'ie).
Po potwierdzeniu podatności, przejdź do fazy eksploatacji – czytaj wrażliwe pliki (/etc/passwd, /var/log/apache2/access.log na Linuxie; C:\Windows\System32\config\sam na Windows), wypisuj informacje systemowe (id, whoami, uname, ipconfig).
W zaawansowanych scenariuszach utwórz reverse shell – dla Linuxa użyj bash'a lub netcat'a, dla Windows'a PowerShell'a – aby uzyskać interaktywny dostęp do systemu.
Dokumentuj wszystkie znalezione podatności i zaproponuj zabezpieczenia: walidację i sanityzację danych wejściowych, unikanie bezpośredniego przekazywania danych do poleceń systemowych oraz stosowanie białych list dozwolonych operacji.