Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Сокеты и авторизация AJAX (https://forum.antichat.xyz/showthread.php?t=92229)

vikseriq 17.11.2008 19:56

Сокеты и авторизация AJAX
 
Собственно, делаю скриптину на PHP - логинит на сайт и постит там мессагу. Типа так же, как и ВК на стены, только все на AJAXе. Так вот, передача простым POSTом что-то не катит - сайт вываливает ошибку, типа тянись к админу выяснять отношения ) Видно, как-то обойти аякс надо.
Как решить данную траблу?

Gifts 17.11.2008 20:22

vikseriq Простым постом оО, это как? Если ошибка то скорее всего где то лишний перевод строки в запросе, или чего то не учитываешь (реферер, кукис, etc) Пример оригинального запроса и твоего - в студию

vikseriq 17.11.2008 20:35

Мой запрос - шаблон:
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); 

Там по плану все оки, но... не передаются формы яксовые. а обычные - запросто. где-то маааленькая ошибка наверное.

vikseriq 17.11.2008 20:49

Ладно, переформулируем.. на просьбу: предоставьте часть кода, где логинимся на какой-нить сайт и передаем аяксовую форму? для примера: ВК и стена.
Кто подскажет?

Chaak 17.11.2008 21:40

Http-live headers или Wireshark. Копируй запросы, только не забывай про Connection: close

mr.The 17.11.2008 21:52

ТС, ставиш proxomitron(работает как прокси), снифаеш заголовки и смотриш что там такое передаёт браузер..
а у тебя в запросе всё впроде-как верно.. попробуй referer передавать.

astrologer 17.11.2008 22:02

Там наверняка используется какая-нибудь библиотека, добавляющая заголовок X-Requested-With.
BTW, аяксовых форм не бывает.

[Raz0r] 17.11.2008 22:16

Очень удобно смотреть и править HTTP-пакеты с помощью Burp Proxy

Ru}{eeZ 17.11.2008 22:27

Не знаю, мне больше всего нравится Tamper Data по мазилу

vikseriq 17.11.2008 22:48

Что-то даже снифферы не спасают - видно был прав astrologer что-то про либы. Только вопрос остается открытым... Буду искать решение в manах )

Gifts 17.11.2008 23:26

Сниферы не спасают, конееееш, данные берутся из воздуха.

Методология:
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

Вот что передает мозила
Код:

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 натолкнулось на капчу, так что какой то параметр постоянно меняется
З.Ы.Ы, дерзай

DIAgen 17.11.2008 23:44

Передавай в заголовках еще параметр HTTP_X_REQUESTED_WITH

-=Static=- 18.11.2008 02:27

Я чет не въеду, ТС ты хочешь спамер AJAXовый написать? Или у тя сайт на который спамить на аяксе написаН? О_о

vikseriq 18.11.2008 22:52

-=Static=-, можно минус тебе влепить? Ты хоть тему-то читаешь?
Да, сайт, где все на аяксе. И Опа там зеленая - даже не хочет авторизить. Подстановка запроса не спасает. Короч, лушче самому, ибо все дельные советы дали )


Время: 05:58