Post запрос

Discussion in 'PHP' started by Killer-App, 20 Dec 2011.

  1. Killer-App

    Killer-App New Member

    Joined:
    11 Nov 2005
    Messages:
    15
    Likes Received:
    1
    Reputations:
    0
    Здравствуйте, форумчане, вопрос в следующем:
    с сайта мегафона отправляю смс
    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 сессии, но как его получить я не знаю. в итоге не могу отправить смс пишет "Вы неправильно ввели код подтверждения"
    Как получить капчу и все остальное я знаю, заранее спасибо за помощь
     
  2. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    26777155735097 - это boundary. Генерировать можно случайно.
     
  3. Flisk

    Flisk Member

    Joined:
    4 Aug 2010
    Messages:
    147
    Likes Received:
    8
    Reputations:
    -2
    По моему, этот разделитель может быть абсолютно любым. Если нет скрытых полей формы с какими-то значениями.
     
  4. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    Главное чтобы он в данных нигде не встречался, т.е. сли нужно передать ?name=vasya, то boundary не может быть "vasya".
     
  5. Killer-App

    Killer-App New Member

    Joined:
    11 Nov 2005
    Messages:
    15
    Likes Received:
    1
    Reputations:
    0
    Ок, понял. Тогда вопрос, немного по другому поставлю.
    Я через Tamper Data (Firefox плагин), перехватываю этот Пост-запрос, копирую и отправляю дальше смс приходит норм. Потом в следующий раз (при перехвате) вставляю ранее скопированный пост запрос, смс не приходит пишет: "Вы неправильно ввели код подтверждения."
    поэтому если это не ID, то что я не правильно делаю.
    Заранее спасибо

    У нескольких пост запросов отличается только этот boundary
     
  6. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    boundary можно не слать вообще, покажите лучше свой код.
     
  7. Killer-App

    Killer-App New Member

    Joined:
    11 Nov 2005
    Messages:
    15
    Likes Received:
    1
    Reputations:
    0
    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.WRITEFUNCTIONfd.write)      
        
    curl.perform()                                                    
        
    curl.close()
        
    fd.close()
     
  8. попугай

    попугай Elder - Старейшина

    Joined:
    15 Jan 2008
    Messages:
    1,520
    Likes Received:
    401
    Reputations:
    196
    Ты каптчу не обрабатываешь.
     
  9. Exandr

    Exandr New Member

    Joined:
    21 Aug 2010
    Messages:
    97
    Likes Received:
    4
    Reputations:
    0

    а зачем ее обрабатывать, если написано неверное введен код ))
     
  10. Killer-App

    Killer-App New Member

    Joined:
    11 Nov 2005
    Messages:
    15
    Likes Received:
    1
    Reputations:
    0
    Т.е. я что-то упускаю?
    Можешь куском кода показать что сделать?
    Или пальцем тыкнуть что в код добавить?
     
  11. попугай

    попугай Elder - Старейшина

    Joined:
    15 Jan 2008
    Messages:
    1,520
    Likes Received:
    401
    Reputations:
    196
    вот поэтому и нужно слать каптчу. Каждый запрос это новая каптча.
    В твоем запросе должно быть поле с текущей каптчей.
     
  12. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    Лучше опиши, какие шаги ты делаешь перед отправкой запроса?
     
  13. Killer-App

    Killer-App New Member

    Joined:
    11 Nov 2005
    Messages:
    15
    Likes Received:
    1
    Reputations:
    0
    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, вот поэтому и думал что проблема в нем. Даже если перехватить пост запрос и удалить их, то тоже выдаст ошибку
     
  14. Killer-App

    Killer-App New Member

    Joined:
    11 Nov 2005
    Messages:
    15
    Likes Received:
    1
    Reputations:
    0
    Я в принципе в куске кода показал, что я делаю перед отправкой запроса, сами значения капчи я получаю
    таким образом:
    Скачиваю страницу с помощью курла, из нее получаю ссылку на обновление капчи, захожу по этой ссылке уже в ручную, смотрю капчу, скрипт ждет ввод значений я ввожу он выполняется дальше.(Все это могу автоматизировать потом, как разберусь почему пост запрос не подходит)

    какую-то привязку капчи к данной сессии я не нашел,
    сейчас в основном через TamperData(плагин фаерфокса), получаю пост и пытаюсь отправить его, если сразу фаерфоксом отправляю, то норм, если этот же пост запрос попытаюсь отправить повторно (перехватив и заменив данные), то не удается и через скрипт тоже не удается(когда перехватываю и отправляю данные скриптом, хотя если потом фаерфоксом отправляю дальше, то все норм)

    Надеюсь понятно объяснил)))
     
  15. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Дело в том что зайдя по ссылке с нужными куками и без вы можете получать разные капчи. Я когда-то делал подобный скрипт, описал все действия, может вам поможет почитайте:
    http://forum.antichat.ru/threadnav129917-1-10.html
     
  16. Killer-App

    Killer-App New Member

    Joined:
    11 Nov 2005
    Messages:
    15
    Likes Received:
    1
    Reputations:
    0
    Я оказывается свой путь по выдиранию капчи начал с вашего этого поста, только я его на эксплоите читал)))
    Дело в том что эта ссылка на капчу всегда постоянная, вы можете по ней зайти и увидите тоже самое что и я
     
  17. Killer-App

    Killer-App New Member

    Joined:
    11 Nov 2005
    Messages:
    15
    Likes Received:
    1
    Reputations:
    0
    И еще вопрос, если boundary ни на что не влияет, то по чему если перехватить данные и заменить этот boundary, то смс не отправиться? и выдаст сообщение о неверном коде ?
     
  18. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    Дело не в boundary а в том, что код уже неверный.
    Или если повторить 2 запроса с одинаковым кодом капчи, то и отсылает 2 смс?
     
  19. Killer-App

    Killer-App New Member

    Joined:
    11 Nov 2005
    Messages:
    15
    Likes Received:
    1
    Reputations:
    0
    нет, отсылает только 1 раз, во втором случае скажет что код не верный(хотя по ссылке капча храниться достаточно долго таже самая)
     
  20. Killer-App

    Killer-App New Member

    Joined:
    11 Nov 2005
    Messages:
    15
    Likes Received:
    1
    Reputations:
    0
    Всем спасибо, особенно хочу выразить благодарность 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))