Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Вопрос про подделку HTTP заголовка "Referer"

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Вопрос про подделку HTTP заголовка "Referer"
Имя
Сообщение << Старые топики   Новые топики >>
Вопрос про подделку HTTP заголовка "Referer" - 2005-09-19 02:02:06   
BigZ

Сообщений: 9
Оценки: 0
Присоединился: 2005-09-19 01:47:46
Приветсвтую!

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

Собственно в том и проблема, что клиент, получив форму от моего скрипта, делает POST запрос, который судя по дампу практически идентичен тому, что отправляется в штатном режиме (при обычной отправке через сайт), остается только проблема с полем Referer, а там прописывается адрес моего скрипта, надо же адрес сайта оператора.

Кто может подсказать, как реализовать подделку Referer на php? Да, кстати, принимающий скрипт написан на asp, может у этого интерпретатора есть какие особенности на счет referer, и воспрятия переменных из HTTP заголовков, тогда бы можно было бы само поле оставить без изменений, и попытаться каким-либо макаром перебить его переменной в теле, либо в кукисах?
Post #: 1
Вопрос про подделку HTTP заголовка "Referer" - 2005-09-21 08:35:39   
mxxm

Сообщений: 253
Оценки: 0
Присоединился: 2004-03-13 08:39:42
Я не совсем понимаю, ты можешь генерировать HTTP-запросы на сервиc отправки смс или нет ?
Если да, тогда реферер можно самому вставлять, какой захочешь:

POST $path_to_service HTTP/1.0
Host: $service_host

Referer: &lt;АДРЕС ПРЕДЫДУЩЕЙ СТРАНИЦЫ&gt;
Post #: 2
Вопрос про подделку HTTP заголовка "Referer" - 2005-09-21 19:18:06   
BigZ

Сообщений: 9
Оценки: 0
Присоединился: 2005-09-19 01:47:46
Вкратце. Нужно заставить браузер пользователя отправить в POST запросе, поле referer необходимое мне (скрипту). По умолчанию браузер отправляет адрес откуда была получена форма (то есть адрес скрипта), нужно же, чтобы указывался адрес конечного сервера.
Post #: 3
Вопрос про подделку HTTP заголовка "Referer" - 2005-09-21 21:19:09   
Lex_Voodoo

Сообщений: 7328
Оценки: 0
Присоединился: 2004-12-07 13:55:12
mxxm уже ответил на твой вопрос. Броузер передает информацию только твоему скрипту, что отдать форме отправки на сайте опсоса, решаешь ты и только ты.
Если клиент передает информацию прямиком опсосу, нахрена, простите, нужен твой скрипт?

Проблему разных ip можно решить списком HTTP-проксиков, автоматически пополняя список с какого-нибудь samair.ru/proxy

Post #: 4
Вопрос про подделку HTTP заголовка "Referer" - 2005-09-22 02:00:40   
BigZ

Сообщений: 9
Оценки: 0
Присоединился: 2005-09-19 01:47:46
quote:

mxxm уже ответил на твой вопрос. Броузер передает информацию только твоему скрипту, что отдать форме отправки на сайте опсоса, решаешь ты и только ты.

Извините, но он не ответил на мой вопрос. То что говорите мне вы и mxxm, знает любой начинающий и владеющий азами в PHP, или любого другого языка веб-программирования.

Я же спрашиваю следующее. Объясняю на пальцах. Пользователь хочет отправить смс, для этого он щелкает на кнопку "отправить смс". На сервере: вызываемый по "щелкнутому" адресу скрипт соединяется с сайтом оператора, распознает графический код, записывает данные о сессии (кукисы), записывает некоторые другие необходимые переменные; отключается от опсоса; формирует форму для клиента, в которой в полях hidden заданы все необходимые для запроса данные, в кукисы пользователя забиваются переменные сессии и некоторые другие, то есть делается все так, чтобы запрос выглядел полностью идентичным запросу присланного через форму опсоса. Затем пользователь нажимает кнопку отправить и все это дело отправляется НА САЙТ ОПСОСА. Таким образом на конечном этапе СКРИПТ НИ КОИМ ОБРАЗОМ НЕ ПРИНИМАЕТ УЧАСТИЯ В ОТПРАВКЕ ЗАПРОСА, а значит и не может (теоретически) повлиять на поле REFERER, а в него пишется адрес сервера, через который пользователь отправляет смс, а опсос следит за этим, и принимает только запросы присланные со своего сервера.

Вот я и спрашиваю, каким образом, возможно с использованием Java-Sсгiрt или же как-то с помошью штатных средств PHP, можно подделать заголовок REFERER на посылаемым пользователем опсосу.

С прокси это конечно можно, только это довольно тривиальное решение, и сложное в реализации - как-то не очень хочется изучать RFC и по вопросу общения с проксями. Тем более, что это замедляет процесс отправки смс с точки зрения конечного пользователя. Да и парсить такие списки, а потом и чекать каждый адрес на валидность… это ли не маразм? Легче уж взломать сервер опсоса и не мучаться, но это уже вне правового поля [sm=em88.gif]
Post #: 5
Вопрос про подделку HTTP заголовка "Referer" - 2005-09-22 03:46:06   
AL

Сообщений: 515
Оценки: 0
Присоединился: 2004-07-19 03:19:44
ИМХО Ошибка изначально в идее. Попробую высказать почему я так считаю.
Я же спрашиваю следующее.
Так.
Пользователь хочет отправить смс, для этого он щелкает на кнопку &quot;отправить смс&quot;.
Данные ушли
На сервере: вызываемый по &quot;щелкнутому&quot; адресу скрипт соединяется с сайтом оператора,
Ну, допустим, он соединился, но кто твой скрипт пустит к данным? Вопрос.
распознает графический код,
Если у тебя получится это сделать - дай знать? Хорошо? Во-первых, код генерит его для вывода в браузер, во-вторых, &#1069;то не числа, которые отображаются на картинке - это сама картинка, только созданная средствами PHP! То есть код нигде не прописан и в момент генерации его никак не перехватишь!!![sm=mad.gif]
записывает данные о сессии (кукисы),
&#1069;то можно.
записывает некоторые другие необходимые переменные;
Откуда? С сайта опсоса? А кто их ему отдаст?
отключается от опсоса;
Ну-ну…
формирует форму для клиента,
&#1069;то уже твой сервант, тут ты можешь хоть чёрта лысого формировать.
в которой в полях hidden заданы все необходимые для запроса данные,
&#1069;то те, которые ты, почему-то решил, что ты заберёшь с сайта опсоса?
в кукисы пользователя забиваются переменные сессии и некоторые другие,
Угу. Щщасс
то есть делается все так, чтобы запрос выглядел полностью идентичным запросу присланного через форму опсоса.
Идентичность можно сделать, только кто её примет?
Затем пользователь нажимает кнопку отправить и все это дело отправляется НА САЙТ ОПСОСА.
Он уже её нажимал. Ты забыл? Опсос, наверно дурак и принимает запросы для отправки с любого сайта и сервера. Да? Ему же пофигу откуда пришёл запрос? По твоей логике так получается. [sm=9.gif]
Таким образом на конечном этапе СКРИПТ НИ КОИМ ОБРАЗОМ НЕ ПРИНИМАЕТ УЧАСТИЯ В ОТПРАВКЕ ЗАПРОСА,
Типа, спихнул опсосу, а тот разъ..ся как хочет. Так?
а значит и не может (теоретически) повлиять на поле REFERER,
А кто сказал, что проверка идёт только по refеrer'у?
а в него пишется адрес сервера, через который пользователь отправляет смс,
Ну и?
а опсос следит за этим,
Не может такого быть! Там же идиоты сидят [sm=9.gif]
и принимает только запросы присланные со своего сервера.
А вот тут ты сказал хоть что-то ИМХО разумное.

Вот я и спрашиваю, каким образом, возможно с использованием Java-Sсгiрt или же как-то с помошью штатных средств PHP, можно подделать заголовок REFERER на посылаемым пользователем опсосу.
NO COMMENTS!
С прокси это конечно можно,
Нет
только это довольно тривиальное решение,
Да, конечно…. Щас каждый придурок будет форму пихать в хом пагу для рассылки sms [sm=9.gif]
и сложное в реализации - как-то не очень хочется изучать RFC и по вопросу общения с проксями.
Бесполезно
Тем более, что это замедляет процесс отправки смс с точки зрения конечного пользователя.
Ты в это, я смотрю, искренне веришь? [sm=9.gif]
Да и парсить такие списки, а потом и чекать каждый адрес на валидность… это ли не маразм?
&#1069;то всё, ИМХО - маразм
Легче уж взломать сервер опсоса и не мучаться,
&#1069;то вторая разумная мысля…
но это уже вне правового поля
Точно.
Это ИМХО. Не более![sm=go139.gif]
Post #: 6
Вопрос про подделку HTTP заголовка "Referer" - 2005-09-22 08:29:03   
Lex_Voodoo

Сообщений: 7328
Оценки: 0
Присоединился: 2004-12-07 13:55:12
Мне кажется, я понял, что ему нужно. Сделать на сайте ссылку "отправить SMS" и избавить юзеров от необходимости заполнения формы с картинкой на сайте опсоса. Непонятно, зачем это так тщательно скрывалось в формулировке вопроса.

>> только это довольно тривиальное решение, и сложное в реализации
Так, все-таки, это слишком легко, или слишком просто. Уж определись как-нибудь :) Лично я не вижу там ничего сложного в реализации.

>> Тем более, что это замедляет процесс отправки смс
И сколько же занимает _твой_ процесс загрузки опсосовского сайта + распознавание изображения + формирование формы? Сомневаюсь, что это быстрая операция.

>> как-то не очень хочется изучать RFC и по вопросу общения с проксями
Какой "RFC и по вопросу общения с проксями"?? Мэн, после этих слов у меня большие сомнения, что ты вообще что-то делал сам. Поди стянул чей-то скрипт, а теперь хочешь, чтобы мы его доработали.

>> Легче уж взломать сервер опсоса
Правда легче? Неужели.

HTTP_REFERER заполняет броузер. В тот момент, когда ты формируешь запрос для выдачи формы, роль броузера играет твой скрипт, поэтому можешь делать что хочешь. В дальнейшем есть связка броузер клиента + сайт опсоса. ПРИЧЕМ ТУТ PHP? (Причем тут JavaSсгiрt я уже не спрашиваю). Вы, батенька, откровенный бред несете и не стесняетесь…

Решение может быть таким - помести на свой сайт не ссылку "Отправить СМС", а форму с полями для номера и текста и кнопку "отправить". Это будет выигрышный вариант как с точки зрения экономии времени, так и с точки зрения того, что он как минимум буде работать.
Post #: 7
Вопрос про подделку HTTP заголовка "Referer" - 2005-09-22 12:11:24   
BigZ

Сообщений: 9
Оценки: 0
Присоединился: 2005-09-19 01:47:46
quote:

Так, все-таки, это слишком легко, или слишком просто.


Вариант, слишком легко, где скрипт сам отправляет данные я сделал в течение нескольких часов.
Мне нужен вариант, где уже пользователь отправляет данные С САЙТА ЗАКАЗЧИКА САМ!!! Что тут еще может быть неясно??? Пользователь отправляет все данные, в дампе пакет выглядит практически идентичным тому, который был бы отправлен с сайта опсоса, кроме поля REFERER.

quote:

И сколько же занимает _твой_ процесс загрузки опсосовского сайта + распознавание изображения + формирование формы? Сомневаюсь, что это быстрая операция.


3 секунды - среднее, максимум было 6 сек.

quote:

Какой &quot;RFC и по вопросу общения с проксями&quot;?? Мэн, после этих слов у меня большие сомнения, что ты вообще что-то делал сам.

Я в этом вопросе не разбирался еще и не вникал, как мне представлялось, для запроса прокси какой либо информации необходимо отправлять специально сформированный пакет, если это выглядит как обычный GET или POST запрос, то замечательно.

quote:

Поди стянул чей-то скрипт, а теперь хочешь, чтобы мы его доработали.

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

quote:

В дальнейшем есть связка броузер клиента + сайт опсоса. ПРИЧЕМ ТУТ PHP? (Причем тут JavaSсгiрt я уже не спрашиваю)


Вот именно, что PHP тут не причем, о чем я и написал БОЛЬШИМИ БУКВАМИ, чтоб всем было видно, и претензий не было. Однако, я лишь предположил, что обработчик ASP, может каким-либо странным образом брать переменные из заголовка, возомжно ее можно просто перебить такой же переменной в POST запросе, либо еще как-нибудь. Причем JavaSсгiрt тоже думаю должно быть ясно, раз мы оставляем браузер на едине с опсосом, значит нужно попытаться, чтобы браузер отправил нужное нам значение, злочастного поля. Я не знаю как это можно реализовать, по этому и спрашиваю, если бы знал, то я бы тут вообще не появился.

quote:

Решение может быть таким - помести на свой сайт не ссылку &quot;Отправить СМС&quot;, а форму с полями для номера и текста и кнопку &quot;отправить&quot;


=)))) спасибо за решение, но если бы вы читали внимательнее, то уяснили бы, что я обошолся полями текст и номер, только проблема в том, что это не то, чего я ПРОШУ от вас. Я не спрашивал легкого решения, так как оно уже давно реализовано, я задаю КОНКРЕТНЫЙ вопрос, и желаю ответа именно на него, а не сомнений в моей компетенции или других решений задачи отправки смс.


На последний пост отвечать не буду, так как товарищ не удосужился прочитать внимательно мой предыдущий пост, и первый тоже. Одно скажу, все что я написал уже реализовано и действует, то что у вас какие-то сомнения в возможности этого дела, это… ваши проблемы.


Вобщем ладно, если единственное ваше разумное предложение - это использование проксей, то думаю на этом можно закрывать тему.
Post #: 8
Вопрос про подделку HTTP заголовка "Referer" - 2005-09-22 13:10:48   
Lex_Voodoo

Сообщений: 7328
Оценки: 0
Присоединился: 2004-12-07 13:55:12
>> 3 секунды
Повезло с каналом, значит. У меня было секунд 15. :)

>> Если у вас сомнения относительно того "что-то делал сам"
У меня не сомнения, а недоумение - как, "сваяв" такой скрипт, вы можете задавать подобные вопросы.

>> Вот именно, что PHP тут не причем
Мне вас процитировать?
каким образом, возможно с использованием Java-Sсгiрt или же как-то с помошью штатных средств PHP, можно подделать заголовок REFERER на посылаемым пользователем опсосу
Как вы собираетесь повлиять на заголовки, отправляемые броузером клиента?
С помощью каких "штатных средств PHP"? Единственное, что тут может быть к месту, это HTML - то, что получает от вас клиент. Тега <REFERER> в HTML нет.

>> возомжно ее можно просто перебить такой же переменной в POST запросе
Нет, невозможно. Вот если бы вы потратили 2 минуты на поиск RFC HTTP и 5 минут на его изучение, вы бы узнали, что заголовок REFERER (как и все остальные заголовки) и POST-переменные - это абсолютно разные части HTTP-запроса.

Post #: 9
Вопрос про подделку HTTP заголовка "Referer" - 2005-09-22 21:58:52   
BigZ

Сообщений: 9
Оценки: 0
Присоединился: 2005-09-19 01:47:46
Я и без изучения предложенного материала прекрасно осведомлен в структуре пост запроса. Вы опять невнимательно читаете. Я говорю о свойствах ASP, который, возомжно, мог бы как-либо некорректно обработать ситуацию, когда через кукисы, либо в теле запроса будет указана переменная REFERER.

Всё, можете забыть о моем вопросе, я нашел решение. В следующий раз, вероятно, придется искать другое место, для подобных вопросов.
Post #: 10
Вопрос про подделку HTTP заголовка "Referer" - 2005-09-29 16:34:37   
lolik

Сообщений: 152
Оценки: 0
Присоединился: 2005-03-19 19:25:42
ты каким образом данные на сервер отправляешь??
Ты же составляешь сам POST запрос? нУ тогда в чем проблемма засунуть туда еще строчку?
referer: www.hackme.ru
А?

ЗЫ.
И вообще нету разницы что там ASP или PHP.. скрипт может получить реферер тока путем чтения поля HTTP_REFERER в запросе….
Post #: 11
Вопрос про подделку HTTP заголовка "Referer" - 2005-09-29 17:17:41   
Lex_Voodoo

Сообщений: 7328
Оценки: 0
Присоединился: 2004-12-07 13:55:12
>> Ты же составляешь сам POST запрос?
Да не сам он его составляет.. Прочитай внимательней.
И вообще, тема закрыта. Человек сам не знал, что ему нужно и вместо того, чтобы потратить 5 минут на чтение мана, писал здесь всякую чушь.
Все возможные варианты уже обсосаны выше.
Post #: 12
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Вопрос про подделку HTTP заголовка "Referer"







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.