ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

#400 Bad request (WinSock)(Delphi)
  #1  
Старый 23.06.2009, 19:59
diznt
Постоянный
Регистрация: 31.01.2008
Сообщений: 643
Провел на форуме:
6128108

Репутация: 445


По умолчанию #400 Bad request (WinSock)(Delphi)

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
 s:TSocket;
 Ws:TWSAData;
 addr:sockaddr_in;
 se:string;
 login:string;
begin
 Memo1.Lines.Add('Подкл. WinSock');
 if WSAStartup($101,Ws)=-1 then
  begin
   Memo1.Lines.Add('-Ошибка');
   exit;
  end
 else
  begin
   Memo1.Lines.Add('-Ок');
  end;
 Memo1.Lines.Add('Создание сокета');
 s:=socket(af_inet, sock_stream, 0);
 if s=-1 then
  begin
   Memo1.Lines.Add('-Ошибка');
   exit;
  end
 else
  begin
   Memo1.Lines.Add('-Ок');
  end;
 addr.sin_family:=af_inet;
 addr.sin_port:=htons(80);
 addr.sin_addr.S_addr:=inet_addr('89.188.101.138');
 Memo1.Lines.Add('Установка связи с хостом');
 if connect(s,addr,sizeof(addr))=-1 then
  begin
   Memo1.Lines.Add('-Ошибка');
   closesocket(s);
   exit;
  end
 else
  begin
   Memo1.Lines.Add('-Ок');
  end;
 login:='SAVEURL=&SERVER=1&account='+edit1.Text+'&pass='+edit2.text+'&submit=%C2%EE%E9%F2%E8';
 se:='POST /cgi/l2isapi.dll/l2login HTTP/1.0'+#13#10+
     'User-Agent: Opera/9.80 (Windows NT 5.1; U; en) Presto/2.2.15 Version/10.00'+#13#10+
     'Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1'+#13#10+
     'Accept-Language: ru-RU,ru;q=0.9,en;q=0.8'+#13#10+
     'Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1'+#13#10+
     'Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0'+#13#10+
     'Cookie: spylog_test=1'+#13#10+
     'Cookie2: $Version=1'+#13#10+
     'Host: lineage.ru'+#13#10+
     'Connection: Keep-Alive'+#13#10+
     'Content-Length: '+IntToStr(Length(login))+#13#10+
     'Content-Type: application/x-www-form-urlencoded'+#13#10+#13#10+login;
 send(s,se,Length(se),0);
 recv(s,re,5000,0);
 Memo2.Text:=re;
 closesocket(s);
end;
Создал новую тему так как код объемный

Вообщем получается ошибка #400 (ответ сервера)

Вот что в мемо добавляется

PHP код:
HTTP/1.1 400 Bad Request
Content
-Typetext/html
Date
Tue23 Jun 2009 15:49:12 GMT
Connection
close
Content
-Length35

<h1>Bad Request (Invalid Verb)</h1
Исправьте пожалуйста! Поскоку изучаю WinSock не давно просьба не ругать

Последний раз редактировалось diznt; 15.07.2009 в 11:06..
 
Ответить с цитированием

  #2  
Старый 23.06.2009, 21:57
intNet
Познающий
Регистрация: 31.05.2009
Сообщений: 68
Провел на форуме:
1271980

Репутация: 19
По умолчанию

Скорее всего ошибка всего в пост-запросе. Снифай то, что отправляет браузер и то, что отправляешь ты, сравнивай - так найдёшь ошибку.
Уже вижу -
Код:
'Content-Length: '+IntToStr(Length(login))+
Замени на :
Код:
'Content-Length: '+IntToStr(Length(login))+#13#10+
Потом :
Код:
'Connection: close'+#13#10+#13#10;
-это сотри нах.
В общем запрос должен выглядеть примерно так :
Код:
'POST http://lineage.ru/cgi/l2isapi.dll/l2login HTTP/1.0'+#13#10+
     'User-Agent: Opera/9.80 (Windows NT 5.1; U; en) Presto/2.2.15 Version/10.00'+#13#10+
     'Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1'+#13#10+
     'Accept-Language: ru-RU,ru;q=0.9,en;q=0.8'+#13#10+
     'Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1'+#13#10+
     'Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0'+#13#10+
     'Cookie: spylog_test=1'+#13#10+
     'Cookie2: $Version=1'+#13#10+
     'Connection: Keep-Alive'+#13#10+
     'Content-Length: '+IntToStr(Length(login))+#13#10+
     'Content-Type: application/x-www-form-urlencoded'#13#10#13#10+login;
 
Ответить с цитированием

  #3  
Старый 23.06.2009, 21:58
[n]-c0der
Участник форума
Регистрация: 03.02.2009
Сообщений: 104
Провел на форуме:
270228

Репутация: 70
По умолчанию

Во - первых код безобразный
Во - вторых тег [code][\code], придумали не просто так
В третьих учи HTTP протокол
В четвертых, прислушайся к вышесказанному ведь ты просишь помощи у общетсва, будь добр хотя бы сделать все это читабельным.
 
Ответить с цитированием

  #4  
Старый 24.06.2009, 09:58
diznt
Постоянный
Регистрация: 31.01.2008
Сообщений: 643
Провел на форуме:
6128108

Репутация: 445


По умолчанию

Цитата:
Сообщение от [n]-c0der  
Во - первых код безобразный
Переделай мой код пожалуйста под нормальный чтобы я понял что значит "Безобразный" (или же укажи на ошибки чтобы был код норм)

[n]-c0der http протокол я то знаю просто смутило что у автора de-visible в мини-статье написано в конце
"'Connection: close'+#13#10+#13#10;"
я решил так написать (да и вообще делал не на свежую голову, теперь осознал что сделал не так (в основном))

intNet переделал -> не помогает
посылал сейчас пакет итог (из под другой программы) -> что он послался нормально

Последний раз редактировалось diznt; 24.06.2009 в 12:36..
 
Ответить с цитированием

  #5  
Старый 24.06.2009, 13:42
Gar|k
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме:
991929

Репутация: 395


По умолчанию

мда....
не удевительно POST запрос должен быть хотябы такого вида
Код:
$post="srch_where=".url($sql)."&folder=".url('inbox')."&srch_text=".url('lol')."&srch_type=".url('s')."&sort_type=".url('d');
$len=length($post);

$zap="POST /messages.php HTTP/1.1\n"
    ."User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\n"
    ."Referer: www.zerodivide.hut1.ru\n"
    ."Content-Type: application/x-www-form-urlencoded\n"
 #   ."Content-Type: multipart/form-data;\n"
    ."Content-Length: $len\n"
    ."Cookie: $cook\n"
    ."Host: $serv\n"
    ."Accept: text/*;q=0,9\n"
    ."Connection: close\n\n"
    ."$post";
надеюсь разберешся что к чему. а ваще читай RFC по протоколу
 
Ответить с цитированием

  #6  
Старый 24.06.2009, 13:58
diznt
Постоянный
Регистрация: 31.01.2008
Сообщений: 643
Провел на форуме:
6128108

Репутация: 445


По умолчанию

Цитата:
Сообщение от Gar|k  
мда....
не удевительно POST запрос должен быть хотябы такого вида
Код:
$post="srch_where=".url($sql)."&folder=".url('inbox')."&srch_text=".url('lol')."&srch_type=".url('s')."&sort_type=".url('d');
$len=length($post);

$zap="POST /messages.php HTTP/1.1\n"
    ."User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\n"
    ."Referer: www.zerodivide.hut1.ru\n"
    ."Content-Type: application/x-www-form-urlencoded\n"
 #   ."Content-Type: multipart/form-data;\n"
    ."Content-Length: $len\n"
    ."Cookie: $cook\n"
    ."Host: $serv\n"
    ."Accept: text/*;q=0,9\n"
    ."Connection: close\n\n"
    ."$post";
надеюсь разберешся что к чему. а ваще читай RFC по протоколу
#2 и #4...

Gar|k кстати а почему у девизибла

'Connection: close' + #13#10#13#10;

В конце http пакета, почему? (мини статьи -> вторая страница)

У тя же эта строчка до переменной $post

Впрочем сейчас надо мой сначала вопрос решить!
 
Ответить с цитированием

  #7  
Старый 24.06.2009, 15:16
Gar|k
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме:
991929

Репутация: 395


По умолчанию

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

  #8  
Старый 24.06.2009, 15:21
diznt
Постоянный
Регистрация: 31.01.2008
Сообщений: 643
Провел на форуме:
6128108

Репутация: 445


По умолчанию

Цитата:
Сообщение от Gar|k  
я незнаю почему у него так, но ващет сначала идут заголовки только потом данные.
твоя проблема решается бонально просто - измени запрос.
Легко сказать...
Ну и какой запрос подставить чтобы работало? В моем случае токо интересует! (примеры не нужны! нужно решение моей проблемы)
Твой пост #5 аналог посту #2 и в нем я не увидел доп. информации

Последний раз редактировалось diznt; 24.06.2009 в 16:03..
 
Ответить с цитированием

  #9  
Старый 24.06.2009, 21:47
intNet
Познающий
Регистрация: 31.05.2009
Сообщений: 68
Провел на форуме:
1271980

Репутация: 19
По умолчанию

Gar|k, не вижу разницы кроме различия в языках.
2 TC:
Снифай HTTP Analyzer'om, переходи на вкладку "stream", преобразовывай код к паскалевскому виду и шли. De-Visible делал также, никаких доп. данных он не прописывал.
Я Писал уже :
Цитата:
Снифай то, что отправляет браузер и то, что отправляешь ты, сравнивай - так найдёшь ошибку.
Сначала вкл. сниффер, логинишься на сайт(к примеру) и смотришь отпр. данные.
Копи-пастишь отправляемые данные в программу и пытаешься их отослать, сравниваешь заголовки. При удачном логине ответ от сервера будет 302, при неудачном - 200.
 
Ответить с цитированием

  #10  
Старый 25.06.2009, 00:35
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

А вообще реально самый главный баг всего этого - не указано поле Host:
Потому как врядли где можно найти сервак у которого работа идет без host а по IP

А также сначало идут все заголовки. затем 2 раза СR LF а потом данные передаваемые.
P.S. загляни на месяц назад и найдешь мою прожку с исходником.
Называется HTTP Sender и там можно строить HTTP пакеты. И там нормально всё строится и работает.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
#400 Bad request (WinSock)(Delphi) diznt Болталка 1 23.06.2009 20:00
Nik9 Sulf aka Joker Болталка 40 17.07.2006 16:28



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ