Przykład niestarannego sprawdzania argumentów
Należy sprawdzić, czy wiersz polecenia zawiera poprawne znaki niektóre języki interpretują znaki specjalne w nazwach plików jako instrukcję „wykonaj wskazany program i podaj mi jego wyniki, zamiast odczytywać dane z pliku”. Jeśli program ma opcję pozwalającą na użycie alternatywnego pliku konfiguracyjnego, napastnik może skonstruować zastępczy plik, który da mu szerszy dostęp. Środowisko wykonawcze może pozwalać na modyfikowanie zmiennych, na przykład w celu wskazania miejsca na pliki tymczasowe takie wartości powinny zostać zweryfikowane przed użyciem. Wszystkie wymienione usterki pojawiają się regularnie w prawdziwych programach dla wszystkich systemów operacyjnych.
Przykład niestarannego sprawdzania argumentów to jeden z demonstracyjnych programów CGI dostarczanych wraz z serwerem HTTP NCSA (napastnicy do dzisiaj szukają tego programu w atakowanych komputerach). Program używał zewnętrznego narzędzia, aby przeprowadzić pewne operacje, i przekazywał temu narzędziu informacje podane przez zdalnego użytkownika. Autor był świadom pro
blemów, które występują podczas używania zewnętrznych narzędzi z odebranymi danymi, więc dołączył kod, który szukał błędnych wartości. Niestety, lista błędnych wartości była niekompletna, przez co serwer HTTP mógł wykonywać dowolne polecenia. Lepiej sprawdziłaby
Leave a reply