Dobrze napisany program wczyta tylko tyle danych, ile się spodziewa otrzymać

W takich atakach programowi podaje się więcej danych, niż oczekiwał jego programista na przykład program, który oczekuje czteroznakowego polecenia, otrzymuje więcej niż 124 znaki. Takiego ataku można użyć przeciwko każdemu programowi, który przyjmuje zdefiniowane przez użytkownika dane wejściowe i bardzo łatwo wykorzystać go przeciwko niemal wszystkim usługom sieciowym. Możesz na przykład podać bardzo długą nazwę użytkownika lub hasło każdemu serwerowi, który uwierzytelnia użytkowników (FTP, POP, IMAP i tak dalej), bardzo długi adres URL serwerowi HTTP albo bardzo długą nazwę odbiorcy serwerowi SMTP. Dobrze napisany program wczyta tylko tyle danych, ile się spodziewa otrzymać. Jednakże program napisany niedbale może wczytywać wszystkie dostępne dane wejściowe, choć ma miejsce tylko na ich część. Kiedy tak się stanie, dodatkowe dane nadpiszą fragment pamięci, który powinien zawierać coś innego. W tym momencie są trzy możliwości. Po pierwsze, pamięć, do której trafią nadmiarowe dane, może być niedostępna do zapisu, a w takim przypadku program zostanie natychmiast zakończony przez system operacyjny. Jest to najczęstszy skutek tego rodzaju błędu.

Po drugie, pamięć może zawierać dane wykorzystywane w innym miejscu programu. Może to spowodować najróżniejsze negatywne skutki i w tym przypadku najczęściej program się załamie, gdy sprawdzi jakąś wartość i otrzyma całkowicie błędny wynik. Jednakże dzięki uważnym manipulacjom napastnik może osiągnąć pożądany rezultat.

Leave a reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>