неопределяемый ip адрес

Discussion in 'Болталка' started by GAiN, 17 Oct 2014.

  1. GAiN

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

    Joined:
    2 Apr 2011
    Messages:
    2,531
    Likes Received:
    166
    Reputations:
    99
    в логах сервера сегодня увидел что сделано 6 посещений, и при этом вместо ip адреса надпись: unknown

    реверс днс тоже остутствует, но поле пустое, если его нет - должна соответственная надпись быть


    у других посещений ip определены
    как такое может быть ? как удалось скрыть цифры ?
     
  2. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,021
    Likes Received:
    1,200
    Reputations:
    327
    разреверсь софт, найди условие когда он пишет unknown
     
  3. yarbabin

    yarbabin HACKIN YO KUT

    Joined:
    21 Nov 2007
    Messages:
    1,664
    Likes Received:
    913
    Reputations:
    363
    какой функцией определяется ip? и да, посмотри в коде, при каком условии unknown. вероятнее всего, что либо подделан заголовок например для $_SERVER['HTTP_X_FORWARDED_FOR'] и заменен на unknown, либо же сама функция при каких-либо условиях возвращает unknown
     
    _________________________
    #3 yarbabin, 17 Oct 2014
    Last edited: 17 Oct 2014
  4. GAiN

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

    Joined:
    2 Apr 2011
    Messages:
    2,531
    Likes Received:
    166
    Reputations:
    99
    у меня нет unknown варианта ответа в коде
    а вот этой функцией ip определяю:

    PHP:
    function getRealIpAddr()
    {
      if (!empty(
    $_SERVER['HTTP_CLIENT_IP']))
      {
        
    $ip=$_SERVER['HTTP_CLIENT_IP'];
      }
      elseif (!empty(
    $_SERVER['HTTP_X_FORWARDED_FOR']))
      {
        
    $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
      }
      else
      {
        
    $ip=$_SERVER['REMOTE_ADDR'];
      }
      return 
    $ip;
    }
    может быть из за хостера такое ?
     
  5. NekoKoneko

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

    Joined:
    29 Oct 2010
    Messages:
    175
    Likes Received:
    141
    Reputations:
    20
    Это магия с X-Forwarded-For заголовком, передают туда фигню типа 999.999.999.999, потому и пишет unknown. Что-то про сию тему тут: http://www.techstacks.com/howto/log-client-ip-and-xforwardedfor-ip-in-apache.html
     
  6. yarbabin

    yarbabin HACKIN YO KUT

    Joined:
    21 Nov 2007
    Messages:
    1,664
    Likes Received:
    913
    Reputations:
    363
    PHP:
    elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) 
      { 
        
    $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
    вот тут, если в заголовке X-Real-IP передать "unknown", то он у тебя и отобразится :)
     
    _________________________
    #6 yarbabin, 18 Oct 2014
    Last edited: 18 Oct 2014
  7. GAiN

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

    Joined:
    2 Apr 2011
    Messages:
    2,531
    Likes Received:
    166
    Reputations:
    99
    Спасибо, теперь понятно стало.
    хочу эксперимент провести, можно ли с помощью curl или как там делается, произвести манипуляцию с подменой заголовка на свой ? если не сложно то покажите скрипт на php :)
    хочу всё это поднять на своём сервере и проверить в действии
     
  8. vegetativniy

    vegetativniy Banned

    Joined:
    23 Dec 2013
    Messages:
    31
    Likes Received:
    10
    Reputations:
    5
    А что у тебя за сайт расскажи, хочется увидеть это чудо, 2к вопросов по пхп как никак. Можно сказать всем ачатом писали.
     
  9. yarbabin

    yarbabin HACKIN YO KUT

    Joined:
    21 Nov 2007
    Messages:
    1,664
    Likes Received:
    913
    Reputations:
    363
    https://chrome.google.com/webstore/detail/header-hacker/phnffahgegfkcobeaapbenpmdnkifigc?hl=en-US
     
    _________________________
  10. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,021
    Likes Received:
    1,200
    Reputations:
    327
    такого быть не может. максимальное десятичное значение абсолютной восьмибитной единицы - 255, и это бродкаст пакеты, может у него в подсети завелся шалун который эксплоитит мак уровень

    бтв пробабли
    а вдруг это 127.0.0.1?
     
  11. NekoKoneko

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

    Joined:
    29 Oct 2010
    Messages:
    175
    Likes Received:
    141
    Reputations:
    20
    Еще как может. Поле типа String - хоть"VasyaPupkin" туда написать можно, http текстовый же протокол. Это в ip поле в четыре байта...
     
  12. fl00der

    fl00der Moderator

    Joined:
    17 Dec 2008
    Messages:
    1,028
    Likes Received:
    310
    Reputations:
    86
    ТС уже разжевали, X-FORWARDED-FOR подменяют.
    Если надо узнать реальный айпи, выгружай логи Апача или какой у тебя там Nginx у хостера и выполняй поиск по этому юзерагенту и времени - отловишь айпи мерзавца.
     
    _________________________
  13. GAiN

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

    Joined:
    2 Apr 2011
    Messages:
    2,531
    Likes Received:
    166
    Reputations:
    99
    это может быть из за ipv6?
    его php $_SERVER['REMOTE_ADDR'] не определяет да и вообще ipv6 нормально не оперделить разве что такими способами:

    PHP:
    <?php
    function getRealIpAddr() {
      if (!empty(
    $_SERVER['HTTP_CLIENT_IP']))
      { 
    $ip=$_SERVER['HTTP_CLIENT_IP']; }
      elseif (!empty(
    $_SERVER['HTTP_X_FORWARDED_FOR']))
      { 
    $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; }
      else { 
    $ip=$_SERVER['REMOTE_ADDR']; }
      return 
    $ip;
    }
    $ip_adres getRealIpAddr();
    if ( 
    array_key_exists('addr'$_GET) )
        
    $ip $_GET['addr'];
    else
        
    $ip $ip_adres;
     
    $v6 preg_match("/^[0-9a-f]{1,4}:([0-9a-f]{0,4}:){1,6}[0-9a-f]{1,4}$/"$ip);
    $v4 preg_match("/^([0-9]{1,3}\.){3}[0-9]{1,3}$/"$ip);
     
    if ( 
    $v6 != )
        
    $type "IPv6";
    elseif ( 
    $v4 != )
        
    $type "IPv4";
    else
        
    $type "unknown";
     
    echo 
    json_encode(array("ip" => $ip"type" => $type));
    ?>
     
  14. yarbabin

    yarbabin HACKIN YO KUT

    Joined:
    21 Nov 2007
    Messages:
    1,664
    Likes Received:
    913
    Reputations:
    363
    GAiN, попробуй сам. создай файлик 1.php и помести в него это:
    PHP:
    <?php
     
    function getRealIpAddr()
    {
      if (!empty(
    $_SERVER['HTTP_CLIENT_IP']))
      {
        
    $ip=$_SERVER['HTTP_CLIENT_IP'];
      }
      elseif (!empty(
    $_SERVER['HTTP_X_FORWARDED_FOR']))
      {
        
    $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
      }
      else
      {
        
    $ip=$_SERVER['REMOTE_ADDR'];
      }
      return 
    $ip;
    }

    echo 
    getRealIpAddr();
    ?>
    затем через расширения для хрома (например это) отправь вот такие заголовки:
    Code:
    X-Forwarded-For: unknown
    и посмотри, что будет в результате.
     
    _________________________