avatar_ShoT

Как создать собственный сниффер на PHP: шаг за шагом

Автор ShoT, 2012 Фев. 16, 09:36

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ключевые слова [SEO] phpпрограммированиесниффер

ShoT

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

Этап 1. Постановка задачи.

Как я уже ранее говорил, мы будем писать простейший сниффер, который будет использовать только стандартные функции PHP, и ничего лишнего.
Основной задачей сниффера будет сбор информации о жертве, зашедшей на наш сайт и сохранение этой информации в текстовом файле, для дальнейшего нами изучения.
Весь код будет находиться в одном файле, допустим sniffer.php, а результат будет лежать в файле log.php.

Этап 2. Объявляем переменные.

Для начала объявим все нужные нам переменные, как я уже говорил, будем брать по минимуму и только стандартные.

Переменная file будет хранить название и путь к файлу log.txt, нашему файлу с результатами:

$file="log.txt";

Теперь объявим две переменные, первая будет хранить формат Даты, а вторая Времени:

$data=date("d.m.Y");
$time=date("H:i");

Это необходимо, для того чтобы в будущем нам было проще разобрать какого числа и во сколько была сделана запись в Лог.
Если хотите, то можете изменить формат отображения даты и времени как вам больше нравится, в моем примере будет следующий результат:

27.01.07 //дата
16:44 //время

Настало время объявить переменные, которые будут брать информацию об IP адресе и характеристиках системы жертвы:

$ip=trim($_SERVER['REMOTE_ADDR']);
$agent=trim($_SERVER['HTTP_USER_AGENT']);

Обе эти переменные используют стандартные функции PHP, которые позволяют нам получить информацию об IP адресе (REMOTE_ADDR) и характеристиках системы (HTTP_USER_AGENT).

Этап 3. Все вместе.

После объявления переменных настало время перейти к написанию самого кода сниффера.
И так, сначала с помощью условия if..else и стандартной функции is_file проверим существование файла log.txt, а затем если файл существует, и в него разрешена запись, откроем его, сформируем принятую от жертвы информацию и запишем все в этот файл:

if(is_file($file)){ //Проверяем наличие файла и возможность работы с ним
$fo=fopen($file,"a"); //Открываем файл на запись в конец
$res="$data|$time|$ip|$agent n"; //Формируем строку с информацией от жертвы
//в формате дата|время|ip-адрес|характеристика системы
//переход на следующую строку n
$fw=fputs($fo,$res); //Записываем в файл
fclose($fo); //Закрываем файл

print"oK"; //Печатаем, что все хорошо (можешь написать свое)
}
else{
print"Error"; //Если файл не существует то выводим надпись Error, ошибка
}

Сниффер готов.
Этап 4. Размещение.

Теперь, когда сниффер полностью готов, время подыскать ему место во всемирной паутине. Если у тебя есть время, то можешь поискать в Яндексе бесплатный хостинг с поддержкой PHP, сейчас их очень много.
Если ты успешно зарегистрировался, то возьми, какой-нибудь FTP менеджер, например Total Commander, и закачай туда два наших файла, sniffer.php (лучше конечно переименовать во что-нибудь другое) и log.txt.
Выставь им соответствующие права и можешь тестировать. Чтобы прочитать Лог, достаточно просто набрать в адресной строке браузера следующее: www.site.ru/log.txt, если конечно log.txt находится у тебя в корневом каталоге.
Должно получиться так:

27.01.2007|07:54|127.0.0.1|Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)

Этап 5. Заключение.

Я показал лишь простейший сниффер, если ты захочешь то можешь модернизировать его, все стандартные функции PHP ищи в справочниках по этому языку или в phpinfo смотри раздел PHP Variables ..


ShoT


Ember

Ты собираешься кредиты в "своих статьях" писать?

Sweng

Цитата: Ex-Ta-Zy от 2012 Фев. 16, 09:53  Потише будь!  ето не с хакзоны!
По*censored*, копипаст он и в африке копипаст.