Чаты прозрачные прокси и x-forwarded-for - беда

Discussion in 'Веб-уязвимости' started by nigadiai, 18 Apr 2005.

  1. nigadiai

    nigadiai Banned

    Joined:
    10 Apr 2005
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    вобщем такое дело

    вставляю себе левый x-forwarded-for: 23.33.44.55 во все запросы. смотрю на на пример античате http://www.antichat.ru/cgi-bin/params.pl свой заголовок. все нормально - античат показывает мой левый x-forwarded-for: 23.33.44.55 и только.

    но если я иду на chat.mail.ru и смотрю свою инфу то вижу там кроме своего левого ип еще и мой реальный ип. вобщем такая хуета создает тематические проблемы.

    вобщем вопрос знающим людям почему? потому что античат показывает только первый x-forwarded-for: в запросе или это что то по хлеще?
     
  2. inSa(Ne)rd

    inSa(Ne)rd В Стране Чудес

    Joined:
    14 Mar 2005
    Messages:
    240
    Likes Received:
    1,369
    Reputations:
    168
    А если идешь и пишешь на talk.ru.chatmail.ru, то та жа проблема?
     
  3. Algol

    Algol New Member

    Joined:
    29 May 2002
    Messages:
    1,759
    Likes Received:
    4
    Reputations:
    0
    Не забывай, что сервер анализирует не только x-forwarded-for, но и IP-address в TCP пакете))
    А он то у тебя и отображает реальный IP...
     
  4. nigadiai

    nigadiai Banned

    Joined:
    10 Apr 2005
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    я не забываю - я не знаю - я в компах еще слабо рублю.
    но это странно - зачем тогда x-forwarded-for нужен если можно было бы выкопать ип из тсп пакетов?

    вобщем я был бы очень благодарен любому хорошему человеку кто бы мог мне помочь.
    нужен хороший человек с хттп сервером на компе и ethereal. сам я как то немогу придумать как себя проснифить ибо если я гружу страничку с себя или компа с той же подсети то запрос разумеется через прокси не проходит. но вот если бы меня кто проснифил я был бы очень рад. хочу посмотреть где там западло сидит.
     
  5. Algol

    Algol New Member

    Joined:
    29 May 2002
    Messages:
    1,759
    Likes Received:
    4
    Reputations:
    0
    x-forwarded-for используется для того, что бы прокси сервера могли сообщить конечному серверу реальный IP клиента.
     
  6. nigadiai

    nigadiai Banned

    Joined:
    10 Apr 2005
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0

    это ясно только зачем тогда x-forwarded-for нужен если как ты утверждаешь сверху этот реальный IP клиента еще есть где то в пакете?
     
  7. Ekstazi

    Ekstazi New Member

    Joined:
    19 Nov 2004
    Messages:
    9
    Likes Received:
    3
    Reputations:
    0
    Если пользователь подключается к серверу через шлюз, или через прокси..., то в x-forwarded-for хранится его IP за шлюзом или за прокси, то есть это по сути и есть реальный IP клиента, правда, не всегда он является глобальным, например, если клиент подключен к VPN, adsl и тому подобное, то x-forwarded-for возвращает его локальный IP, правда не все прокси передают x-forwarded-for
     
  8. Algol

    Algol New Member

    Joined:
    29 May 2002
    Messages:
    1,759
    Likes Received:
    4
    Reputations:
    0
    Да нет, как раз IP адрес из TCP пакета показывает адрес прокси а не твой адрес (если ты заходишь через прокси).
     
  9. nigadiai

    nigadiai Banned

    Joined:
    10 Apr 2005
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    вот тото и оно - я про тоже

    приведу пример чтоб тебе стало яснее ибо я понимаю что ты чуть чуть не понял про что я говорю

    ваш параметры хттп выбивает

    TCP/IP протокол
    REMOTE_ADDR: 94.55.122.34
    REMOTE_PORT: 57501
    HTTP протокол
    GET http://antichat.ru/cgi-bin/params.pl HTTP/1.1
    Accept: application/x-shockwave-flash, */*
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; iOpus-I-M)
    Pragma: no-cache, bypass-client=95.94.145.231
    Accept-Language: en-us
    Via: cacheng 1.1, 1.1 cacheng
    Referer: http://antichat.ru/
    Connection: keep-alive
    Cookie: hotlog=1; b=b
    X-Forwarded-For: 34.55.66.55
    Host: antichat.ru


    то есть адресс прокси REMOTE_ADDR: 94.55.122.34, левый ип X-Forwarded-For: 34.55.66.55

    но майл ру выбивает еще и реальный мой ип. и выглядит все там так 34.55.66.55, 94.55.122.34, реальный ип


    вобщем я не знаю но мне кажется что прокси независимо от присутсвия в запросе X-Forwarded-For: добавляет всегда как положенно еще один X-Forwarded-For: а ваш скрипт просто тупит ибо это тупость заложена в самом пхп ибо пхп кажется что в заоловке может быть только один X-Forwarded-For. а майл ру 2 месяца думала пока додумала как эту тупость профиксить и докопаться до второго X-Forwarded-For.
     
  10. Algol

    Algol New Member

    Joined:
    29 May 2002
    Messages:
    1,759
    Likes Received:
    4
    Reputations:
    0
    А это что ?
    Pragma: no-cache, bypass-client=95.94.145.231

    Прокся не обязана передавать адрес клиента именно в X-Forwarded-For. Она может передавать и в других параметрах (например в поле Via или bypass-client)

    А скрипт вообще-то не на ПХП а на перле. Хотя действительно, если несколько одноименных заголовков, то скрипт этого не отображает.
    Но и прокси не должны добавлять одноименные заголовки. Обычно они просто перечисляют IP через запятую в поле X-Forwarded-For (это можно увидеть здесь http://antichat.ru/proxy для прокси 203.156.136.8:3128 например ).
     
    #10 Algol, 20 Apr 2005
    Last edited: 20 Apr 2005
  11. nigadiai

    nigadiai Banned

    Joined:
    10 Apr 2005
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    а это еще один левый ип. но он тоже не помагает - его ваще майл ру нигде не показывает.


    вот тото и оно что все как то не должно а непонятно как работает и проблемы создает нереальные.


    вобщем чтоб не гадать нужен комп с сервером и ethereal чтоб меня проснифить или человек с компом которого я проснифю ибо комп с сервером и ethereal у меня есть.
     
  12. Algol

    Algol New Member

    Joined:
    29 May 2002
    Messages:
    1,759
    Likes Received:
    4
    Reputations:
    0
    Чудес не бывает. Либо используется IP из TCP пакета, либо поля HTTP запроса. Другой инфы сервер в принципе получить не может.