Здравствуйте, форумчане, вопрос в следующем: с сайта мегафона отправляю смс https://sendsms.megafon.ru получаю такой вот пост запрос: Code: -----------------------------26777155735097\r\nContent-Disposition: form-data; name="charcheck"\r\n\r\nйцукен\r\n-----------------------------26777155735097\r\nContent-Disposition: form-data; name="lang"\r\n\r\n\r\n-----------------------------26777155735097\r\nContent-Disposition: form-data; name="prefix"\r\n\r\n7926\r\n-----------------------------26777155735097\r\nContent-Disposition: form-data; name="addr"\r\n\r\n1111111\r\n-----------------------------26777155735097\r\nContent-Disposition: form-data; name="message"\r\n\r\nqwerty\r\n-----------------------------26777155735097\r\nContent-Disposition: form-data; name="send_day"\r\n\r\n20\r\n-----------------------------26777155735097\r\nContent-Disposition: form-data; name="send_month"\r\n\r\n12\r\n-----------------------------26777155735097\r\nContent-Disposition: form-data; name="send_hour"\r\n\r\n16\r\n-----------------------------26777155735097\r\nContent-Disposition: form-data; name="send_minute"\r\n\r\n4\r\n-----------------------------26777155735097\r\nContent-Disposition: form-data; name="send_year"\r\n\r\n2011\r\n-----------------------------26777155735097\r\nContent-Disposition: form-data; name="recaptcha_challenge_field"\r\n\r\n03AHJ_VuuaLSsknLvGXLJOGmN4p6VKnZd0xeNicAOWwNR9Jkv4nPNE_ovy2-Jbzva_-w7aG-QnPJ5ZDaKQwqqV975ATih80YNoxbaJzt04mmlfH4XF7pd0mxf04Ee4Eu5bUChoBNBCEkEFwChY-u4geqyav2dz-_wFL38nCg6tgH_Rya8m9f_l57U\r\n-----------------------------26777155735097\r\nContent-Disposition: form-data; name="recaptcha_response_field"\r\n\r\nccsitua explanations\r\n-----------------------------26777155735097--\r\n Не могу понять откуда взять значение 26777155735097 как мне кажется это Id сессии, но как его получить я не знаю. в итоге не могу отправить смс пишет "Вы неправильно ввели код подтверждения" Как получить капчу и все остальное я знаю, заранее спасибо за помощь
По моему, этот разделитель может быть абсолютно любым. Если нет скрытых полей формы с какими-то значениями.
Главное чтобы он в данных нигде не встречался, т.е. сли нужно передать ?name=vasya, то boundary не может быть "vasya".
Ок, понял. Тогда вопрос, немного по другому поставлю. Я через Tamper Data (Firefox плагин), перехватываю этот Пост-запрос, копирую и отправляю дальше смс приходит норм. Потом в следующий раз (при перехвате) вставляю ранее скопированный пост запрос, смс не приходит пишет: "Вы неправильно ввели код подтверждения." поэтому если это не ID, то что я не правильно делаю. Заранее спасибо У нескольких пост запросов отличается только этот boundary
PHP: def GetParamAndCapcha(): mURL="https://sendsms.megafon.ru/" fd=open("text.html","w") data1='-----------------------------29658227049930\r\nContent-Disposition: form-data; name="charcheck"\r\n\r\n%E9%F6%F3%EA%E5%ED\r\n-----------------------------29658227049930\r\nContent-Disposition: form-data; name="lang"\r\n\r\n\r\n-----------------------------29658227049930\r\nContent-Disposition: form-data; name="prefix"\r\n\r\n7926\r\n-----------------------------29658227049930\r\nContent-Disposition: form-data; name="addr"\r\n\r\n1111111\r\n-----------------------------29658227049930\r\nContent-Disposition: form-data; name="message"\r\n\r\nqwerty\r\n-----------------------------29658227049930\r\nContent-Disposition: form-data; name="send_day"\r\n\r\n20\r\n-----------------------------29658227049930\r\nContent-Disposition: form-data; name="send_month"\r\n\r\n12\r\n-----------------------------29658227049930\r\nContent-Disposition: form-data; name="send_hour"\r\n\r\n15\r\n-----------------------------29658227049930\r\nContent-Disposition: form-data; name="send_minute"\r\n\r\n58\r\n-----------------------------29658227049930\r\nContent-Disposition: form-data; name="send_year"\r\n\r\n2011\r\n-----------------------------29658227049930\r\nContent-Disposition: form-data; name="recaptcha_challenge_field"\r\n\r\n03AHJ_VusIDY75pqvozB9xVRV82AZCzhhmX5SWA7yYHtR5eBQkZodXlev3QTufRwh0zpnSIJ_1_4Dl1anLaXwA6uz3yVtdeJiJ8EJNsJM1bot8ULKBM4Y10fIO0ntWzWodK7yZh9PFQGxZZ4HVLFIADRC1ZGPyNtLyPw\r\n-----------------------------29658227049930\r\nContent-Disposition: form-data; name="recaptcha_response_field"\r\n\r\ntionsert Charlie\r\n-----------------------------29658227049930--\r\n' curl.setopt(pycurl.URL,'https://sendsms.megafon.ru/sms.action') curl.setopt(pycurl.REFERER,mURL) curl.setopt(pycurl.FOLLOWLOCATION,1) curl.setopt(pycurl.SSL_VERIFYPEER,False) curl.setopt(pycurl.SSL_VERIFYHOST,False) curl.setopt(pycurl.COOKIEJAR, './cook.txt') curl.setopt(pycurl.COOKIEFILE, './cook.txt') curl.setopt(pycurl.POST,1) curl.setopt(pycurl.POSTFIELDS,data1) curl.setopt(pycurl.WRITEFUNCTION, fd.write) curl.perform() curl.close() fd.close()
Т.е. я что-то упускаю? Можешь куском кода показать что сделать? Или пальцем тыкнуть что в код добавить?
вот поэтому и нужно слать каптчу. Каждый запрос это новая каптча. В твоем запросе должно быть поле с текущей каптчей.
Code: Content-Disposition: form-data; name="recaptcha_challenge_field"\r\n\r\n03AHJ_VusIDY75pqvozB9xVRV82AZCzhhmX5SWA7yY HtR5eBQkZodXlev3QTufRwh0zpnSIJ_1_4Dl1anLaXwA6uz3yV tdeJiJ8EJNsJM1bot8ULKBM4Y10fIO0ntWzWodK7yZh9PFQGxZ Z4HVLFIADRC1ZGPyNtLyPw\r\n-----------------------------29658227049930\r\nContent-Disposition: form-data; name="recaptcha_response_field"\r\n\r\ntionsert Charlie\r\n-----------------------------29658227049930--\r\n' Где 03AHJ_VusIDY75pqvozB9xVRV82AZCzhhmX5SWA7yY HtR5eBQkZodXlev3QTufRwh0zpnSIJ_1_4Dl1anLaXwA6uz3yV tdeJiJ8EJNsJM1bot8ULKBM4Y10fIO0ntWzWodK7yZh9PFQGxZ Z4HVLFIADRC1ZGPyNtLyPw - это значение по которому получается капча Code: http://www.google.com/recaptcha/api/image?c=03AHJ_VusIDY75pqvozB9xVRV82AZCzhhmX5SWA7yY HtR5eBQkZodXlev3QTufRwh0zpnSIJ_1_4Dl1anLaXwA6uz3yV tdeJiJ8EJNsJM1bot8ULKBM4Y10fIO0ntWzWodK7yZh9PFQGxZ Z4HVLFIADRC1ZGPyNtLyPw а это значение капчи tionsert Charlie, т.е. Я эти значения передаю в запросе, но вот проблема, почему выдает сообщение не верный код? Т.е. я все данные которые должны быть в пост запросе передаю правильно, кроме boundary, вот поэтому и думал что проблема в нем. Даже если перехватить пост запрос и удалить их, то тоже выдаст ошибку
Я в принципе в куске кода показал, что я делаю перед отправкой запроса, сами значения капчи я получаю таким образом: Скачиваю страницу с помощью курла, из нее получаю ссылку на обновление капчи, захожу по этой ссылке уже в ручную, смотрю капчу, скрипт ждет ввод значений я ввожу он выполняется дальше.(Все это могу автоматизировать потом, как разберусь почему пост запрос не подходит) какую-то привязку капчи к данной сессии я не нашел, сейчас в основном через TamperData(плагин фаерфокса), получаю пост и пытаюсь отправить его, если сразу фаерфоксом отправляю, то норм, если этот же пост запрос попытаюсь отправить повторно (перехватив и заменив данные), то не удается и через скрипт тоже не удается(когда перехватываю и отправляю данные скриптом, хотя если потом фаерфоксом отправляю дальше, то все норм) Надеюсь понятно объяснил)))
Дело в том что зайдя по ссылке с нужными куками и без вы можете получать разные капчи. Я когда-то делал подобный скрипт, описал все действия, может вам поможет почитайте: http://forum.antichat.ru/threadnav129917-1-10.html
Я оказывается свой путь по выдиранию капчи начал с вашего этого поста, только я его на эксплоите читал))) Дело в том что эта ссылка на капчу всегда постоянная, вы можете по ней зайти и увидите тоже самое что и я
И еще вопрос, если boundary ни на что не влияет, то по чему если перехватить данные и заменить этот boundary, то смс не отправиться? и выдаст сообщение о неверном коде ?
Дело не в boundary а в том, что код уже неверный. Или если повторить 2 запроса с одинаковым кодом капчи, то и отсылает 2 смс?
нет, отсылает только 1 раз, во втором случае скажет что код не верный(хотя по ссылке капча храниться достаточно долго таже самая)
Всем спасибо, особенно хочу выразить благодарность aka_GRAD, за предоставленный исходник. Проблема в том что я не правильно формировал Post-запрос Правильный вариант Пост запроса(все что в кавычках): Code: data1="charcheck=%s&lang=&prefix=7926&addr=1111111&message=qazwerty132&send_day=21&send_month=12&send_hour=11&send_minute=10&send_year=2011&recaptcha_challenge_field=%s&recaptcha_response_field=%s"%(str(MSG),str(link),str(capcha))