ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|
#400 Bad request (WinSock)(Delphi) |

23.06.2009, 19:59
|
|
Постоянный
Регистрация: 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-Type: text/html
Date: Tue, 23 Jun 2009 15:49:12 GMT
Connection: close
Content-Length: 35
<h1>Bad Request (Invalid Verb)</h1>
Исправьте пожалуйста! Поскоку изучаю WinSock не давно просьба не ругать 
Последний раз редактировалось diznt; 15.07.2009 в 11:06..
|
|
|

23.06.2009, 21:57
|
|
Познающий
Регистрация: 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;
|
|
|

23.06.2009, 21:58
|
|
Участник форума
Регистрация: 03.02.2009
Сообщений: 104
Провел на форуме: 270228
Репутация:
70
|
|
Во - первых код безобразный
Во - вторых тег [code][\code], придумали не просто так
В третьих учи HTTP протокол
В четвертых, прислушайся к вышесказанному ведь ты просишь помощи у общетсва, будь добр хотя бы сделать все это читабельным.
|
|
|

24.06.2009, 09:58
|
|
Постоянный
Регистрация: 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..
|
|
|

24.06.2009, 13:42
|
|
Постоянный
Регистрация: 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 по протоколу
|
|
|

24.06.2009, 13:58
|
|
Постоянный
Регистрация: 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
Впрочем сейчас надо мой сначала вопрос решить!
|
|
|

24.06.2009, 15:16
|
|
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме: 991929
Репутация:
395
|
|
я незнаю почему у него так, но ващет сначала идут заголовки только потом данные.
твоя проблема решается бонально просто - измени запрос.
|
|
|

24.06.2009, 15:21
|
|
Постоянный
Регистрация: 31.01.2008
Сообщений: 643
Провел на форуме: 6128108
Репутация:
445
|
|
Сообщение от Gar|k
я незнаю почему у него так, но ващет сначала идут заголовки только потом данные.
твоя проблема решается бонально просто - измени запрос.
Легко сказать...
Ну и какой запрос подставить чтобы работало? В моем случае токо интересует! (примеры не нужны! нужно решение моей проблемы)
Твой пост #5 аналог посту #2 и в нем я не увидел доп. информации
Последний раз редактировалось diznt; 24.06.2009 в 16:03..
|
|
|

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

25.06.2009, 00:35
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
А вообще реально самый главный баг всего этого - не указано поле Host:
Потому как врядли где можно найти сервак у которого работа идет без host а по IP
А также сначало идут все заголовки. затем 2 раза СR LF а потом данные передаваемые.
P.S. загляни на месяц назад и найдешь мою прожку с исходником.
Называется HTTP Sender и там можно строить HTTP пакеты. И там нормально всё строится и работает.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|