Сокеты и авторизация AJAX

Discussion in 'PHP' started by vikseriq, 17 Nov 2008.

  1. vikseriq

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

    Joined:
    31 Jul 2008
    Messages:
    118
    Likes Received:
    44
    Reputations:
    2
    Собственно, делаю скриптину на PHP - логинит на сайт и постит там мессагу. Типа так же, как и ВК на стены, только все на AJAXе. Так вот, передача простым POSTом что-то не катит - сайт вываливает ошибку, типа тянись к админу выяснять отношения ) Видно, как-то обойти аякс надо.
    Как решить данную траблу?
     
  2. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    vikseriq Простым постом оО, это как? Если ошибка то скорее всего где то лишний перевод строки в запросе, или чего то не учитываешь (реферер, кукис, etc) Пример оригинального запроса и твоего - в студию
     
    _________________________
  3. vikseriq

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

    Joined:
    31 Jul 2008
    Messages:
    118
    Likes Received:
    44
    Reputations:
    2
    Мой запрос - шаблон:
    PHP:
    $out  ="POST $path HTTP/1.1\r\n";
            
    $out .="Host: $host\r\n";
            
    $out .="User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; it; ) Gecko/20080404 Firefox/2.0.0.14\r\n";
            
    $out .="Cookie: $cookie\r\n";
            
    $out .="Pragma: no-cache\r\n";
            
    $out .="Content-Type: application/x-www-form-urlencoded\r\n";
            
    $out .="Content-Length: " strlen($form) . "\r\n";
            
    $out .="Connection: Close\r\n\r\n";
            
    $out .=$form;
        
    fwrite($sock$out); 
    Там по плану все оки, но... не передаются формы яксовые. а обычные - запросто. где-то маааленькая ошибка наверное.
     
  4. vikseriq

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

    Joined:
    31 Jul 2008
    Messages:
    118
    Likes Received:
    44
    Reputations:
    2
    Ладно, переформулируем.. на просьбу: предоставьте часть кода, где логинимся на какой-нить сайт и передаем аяксовую форму? для примера: ВК и стена.
    Кто подскажет?
     
  5. Chaak

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

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    Http-live headers или Wireshark. Копируй запросы, только не забывай про Connection: close
     
    1 person likes this.
  6. mr.The

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,080
    Likes Received:
    456
    Reputations:
    38
    ТС, ставиш proxomitron(работает как прокси), снифаеш заголовки и смотриш что там такое передаёт браузер..
    а у тебя в запросе всё впроде-как верно.. попробуй referer передавать.
     
    1 person likes this.
  7. astrologer

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

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Там наверняка используется какая-нибудь библиотека, добавляющая заголовок X-Requested-With.
    BTW, аяксовых форм не бывает.
     
  8. [Raz0r]

    [Raz0r] Elder - Старейшина

    Joined:
    25 Feb 2007
    Messages:
    425
    Likes Received:
    484
    Reputations:
    295
    Очень удобно смотреть и править HTTP-пакеты с помощью Burp Proxy
     
    1 person likes this.
  9. Ru}{eeZ

    Ru}{eeZ Elder - Старейшина

    Joined:
    19 Feb 2008
    Messages:
    454
    Likes Received:
    73
    Reputations:
    -5
    Не знаю, мне больше всего нравится Tamper Data по мазилу
     
  10. vikseriq

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

    Joined:
    31 Jul 2008
    Messages:
    118
    Likes Received:
    44
    Reputations:
    2
    Что-то даже снифферы не спасают - видно был прав astrologer что-то про либы. Только вопрос остается открытым... Буду искать решение в manах )
     
  11. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Сниферы не спасают, конееееш, данные берутся из воздуха.

    Методология:
    1) Авторизуемся на вконтакте и получаем кукисы
    2) Открываем страницу со стеной куда будем писать
    3) Парсим страницу на предмет:
    3.1
    PHP:
    function postIt() {ge('br').style.display 'none'makeFRequest('wall.php?act=get10&wall_hash=1301931d8fdb5342aea88c398748001f&wpage=100000'3);}</script>
    Wall_hash - это собственно $path для твоего скрипта.
    3.2
    PHP:
     <form method="POST" action="wall.php" name="postMessage" id="postMessage">
     <
    input type="hidden" id="to_id" name="to_id" value="53318907176"/>
     <
    input type="hidden" id="act" name="act" value="sent"/>
    Значение to_id попадет в пост запрос, как - mid=53318907176
    3.3 В пост запрос попадут также - количество сообщений (например 2) fpage=2 и количество сообщений на странице (например 13) n=13. Как это отпарсить не смотрел, так что...
    3.4 Собственно сообщение
    3.5 Не забываем про реферер
    4 Итоговый пост - seed=Наше мегасообщение&fpage=2&mid=53318907176&n=13

    Вот что передает мозила
    Code:
    Host: vkontakte.ru
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) 
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: ru,en-us;q=0.7,en;q=0.3
    Accept-Encoding: gzip,deflate
    Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
    Keep-Alive: 300
    Connection: keep-alive
    Content-Type: application/x-www-form-urlencoded; charset=UTF-8
    Referer: http://vkontakte.ru/idКакой то ID
    Content-Length: 52
    Cookie: В рот мне ноги - тут печеньки ^^
    Pragma: no-cache
    Cache-Control: no-cache
    
    seed=123456789ABCDEFJK&fpage=2&mid=53318907176&n=13
    З.Ы. Попытка повторить запрос через LiveHTTPHeaders натолкнулось на капчу, так что какой то параметр постоянно меняется
    З.Ы.Ы, дерзай
     
    _________________________
    #11 Gifts, 17 Nov 2008
    Last edited: 17 Nov 2008
    2 people like this.
  12. DIAgen

    DIAgen Banned Life!

    Joined:
    2 May 2006
    Messages:
    1,055
    Likes Received:
    374
    Reputations:
    460
    Передавай в заголовках еще параметр HTTP_X_REQUESTED_WITH
     
  13. -=Static=-

    -=Static=- Banned

    Joined:
    12 Nov 2006
    Messages:
    201
    Likes Received:
    40
    Reputations:
    0
    Я чет не въеду, ТС ты хочешь спамер AJAXовый написать? Или у тя сайт на который спамить на аяксе написаН? О_о
     
    #13 -=Static=-, 18 Nov 2008
    Last edited: 18 Nov 2008
  14. vikseriq

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

    Joined:
    31 Jul 2008
    Messages:
    118
    Likes Received:
    44
    Reputations:
    2
    -=Static=-, можно минус тебе влепить? Ты хоть тему-то читаешь?
    Да, сайт, где все на аяксе. И Опа там зеленая - даже не хочет авторизить. Подстановка запроса не спасает. Короч, лушче самому, ибо все дельные советы дали )