Просмотр полной версии : Сокеты и авторизация AJAX
vikseriq
17.11.2008, 19:56
Собственно, делаю скриптину на PHP - логинит на сайт и постит там мессагу. Типа так же, как и ВК на стены, только все на AJAXе. Так вот, передача простым POSTом что-то не катит - сайт вываливает ошибку, типа тянись к админу выяснять отношения ) Видно, как-то обойти аякс надо.
Как решить данную траблу?
vikseriq Простым постом оО, это как? Если ошибка то скорее всего где то лишний перевод строки в запросе, или чего то не учитываешь (реферер, кукис, etc) Пример оригинального запроса и твоего - в студию
vikseriq
17.11.2008, 20:35
Мой запрос - шаблон:
$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
Ладно, переформулируем.. на просьбу: предоставьте часть кода, где логинимся на какой-нить сайт и передаем аяксовую форму? для примера: ВК и стена.
Кто подскажет?
Http-live headers или Wireshark. Копируй запросы, только не забывай про Connection: close
ТС, ставиш proxomitron(работает как прокси), снифаеш заголовки и смотриш что там такое передаёт браузер..
а у тебя в запросе всё впроде-как верно.. попробуй referer передавать.
astrologer
17.11.2008, 22:02
Там наверняка используется какая-нибудь библиотека, добавляющая заголовок X-Requested-With.
BTW, аяксовых форм не бывает.
Очень удобно смотреть и править HTTP-пакеты с помощью Burp Proxy (http://raz0r.name/obzory/effektivnyj-i-bystryj-pentesting-veb-prilozhenij-s-burp-suite/)
Не знаю, мне больше всего нравится Tamper Data по мазилу
vikseriq
17.11.2008, 22:48
Что-то даже снифферы не спасают - видно был прав astrologer что-то про либы. Только вопрос остается открытым... Буду искать решение в manах )
Сниферы не спасают, конееееш, данные берутся из воздуха.
Методология:
1) Авторизуемся на вконтакте и получаем кукисы
2) Открываем страницу со стеной куда будем писать
3) Парсим страницу на предмет:
3.1 function postIt() {ge('br').style.display = 'none'; makeFRequest('wall.php?act=get10&wall_hash=1301931d8fdb5342aea88c398748001f&wpage=100000', 3);}</script> Wall_hash - это собственно $path для твоего скрипта.
3.2 <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 натолкнулось на капчу, так что какой то параметр постоянно меняется
З.Ы.Ы, дерзай
Передавай в заголовках еще параметр HTTP_X_REQUESTED_WITH
-=Static=-
18.11.2008, 02:27
Я чет не въеду, ТС ты хочешь спамер AJAXовый написать? Или у тя сайт на который спамить на аяксе написаН? О_о
vikseriq
18.11.2008, 22:52
-=Static=-, можно минус тебе влепить? Ты хоть тему-то читаешь?
Да, сайт, где все на аяксе. И Опа там зеленая - даже не хочет авторизить. Подстановка запроса не спасает. Короч, лушче самому, ибо все дельные советы дали )
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot