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

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

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

Delphi - http post через winsock
  #1  
Старый 13.02.2010, 20:46
Fedcomp
Новичок
Регистрация: 20.09.2009
Сообщений: 5
Провел на форуме:
3308

Репутация: 0
Отправить сообщение для Fedcomp с помощью ICQ
По умолчанию Delphi - http post через winsock

Всем привет, пишу программу для логина на сайте. Но проблема в двух вещах :
1. я очень плохо знаю винсок (кучу примеров скачивал но их очень трудно разобрать)
2. Нужно отправить сразу два http post запроса на два разных url (192.168.1.48/login.php и 192.168.1.48/auth.php, такая там мудренная система логина через ajax)
Пока получилось на локальном компьютере лишь это :


Код:
procedure TForm1.Button1Click(Sender: TObject);
var
 s:TSocket;
 Ws:TWSAData;
 addr:sockaddr_in;
 se,re:ansistring;
 login:string;
 buf: array[1..5000] of Char;
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('127.0.0.1');
 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=111&pass=222&submit=%C2%EE%E9%F2%E8';
 se:=memo3.text+#13#10+#13#10;
 CopyMemory(@buf, PChar(se), Length(se));
 send(s,buf,SizeOf(buf),0);
 recv(s,buf,SizeOf(buf),0);
 re:=buf;
 Memo2.Text:=re;
 closesocket(s);

end;
Как видно на скриншоте, сервер не понимает мой запрос. Запрос брал из firefox'а через аддон httpfox
 
Ответить с цитированием

  #2  
Старый 13.02.2010, 20:51
Fedcomp
Новичок
Регистрация: 20.09.2009
Сообщений: 5
Провел на форуме:
3308

Репутация: 0
Отправить сообщение для Fedcomp с помощью ICQ
По умолчанию

Код:
POST /bl.php HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7
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
Referer: http://127.0.0.1/bl.php
Cookie: collapseprefs=debug; rte-sidepanel=open; anonlogin=-1; member_id=1; hide_sidebar=1; gmpl_ogame=1+Pizoren90+60788e255743c74f1c32955de4be94b2+1;
Content-Type: application/x-www-form-urlencoded
Content-Length: 16
Это запрос который пытаюсь отправить
 
Ответить с цитированием

  #3  
Старый 13.02.2010, 21:35
rikko
Новичок
Регистрация: 23.11.2009
Сообщений: 14
Провел на форуме:
178353

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

Fedcomp, запрос должен быть такой:
Код:
'POST /bl.php HTTP/1.1'#13#10+
'Host: 127.0.0.1'#13#10+
'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7'#13#10+
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'#13#10+
'Accept-Language: ru,en-us;q=0.7,en;q=0.3'#13#10+
'Accept-Encoding: gzip,deflate'#13#10+
'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'#13#10+
'Keep-Alive: 300'#13#10+
'Connection: keep-alive'#13#10+
'Referer: http://127.0.0.1/bl.php'#13#10+
'Cookie: collapseprefs=debug; rte-sidepanel=open; anonlogin=-1; member_id=1; hide_sidebar=1; gmpl_ogame=1+Pizoren90+60788e255743c74f1c32955de4b  e94b2+1;'#13#10+
'Content-Type: application/x-www-form-urlencoded'#13#10+
'Content-Length: 16'#13#10#13#10+
'SAVEURL=&SERVER=1&account=111&pass=222&submit=%C2%EE%E9%F2%E8'#13#10
ты не посылаешь часть, что выделена оранжевым, судя по твоему примеру. это и есть сам пост запрос.
плюс проверь все переносы строк и их количество.
'Content-Length: 16' - у тебя он не 16 равен, на самом деле

Последний раз редактировалось rikko; 13.02.2010 в 21:37..
 
Ответить с цитированием

  #4  
Старый 13.02.2010, 22:02
Fedcomp
Новичок
Регистрация: 20.09.2009
Сообщений: 5
Провел на форуме:
3308

Репутация: 0
Отправить сообщение для Fedcomp с помощью ICQ
По умолчанию

Код:
POST /bl.php HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7
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
Referer: http://127.0.0.1/bl.htm
Cookie: testcookie=1
Content-Type: application/x-www-form-urlencoded
Content-Length: 0
Такой тоже не прокатывает.
Получается интересный результат - Веб сервер выдает мне вот это
Код:
HTTP/1.1 200 OK
Date: Sat, 13 Feb 2010 17:59:32 GMT
Server: Apache/2.2.13 (Win32) PHP/5.2.10
X-Powered-By: PHP/5.2.10
Content-Length: 42
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html

Array
(
)
Array
(
    [testcookie] => 1
)
HTTP/1.1 400 Bad Request
Date: Sat, 13 Feb 2010 17:59:32 GMT
Server: Apache/2.2.13 (Win32) PHP/5.2.10
Content-Length: 395
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
Request header field is missing ':' separator.<br />
<pre>
&lt;link rel=&quot;shortcut icon&quot; href=&quot;favicon.ico&quot; type=&quot;image/x-icon&quot; /&gt;</pre>
</p>
</body></html>
<script type="text/javascript" src="jscripts/reflection.js"></script>
</head> 
<body>
<iframe width="100%" height="15" scrolling="no" frameborder="0" marginwidth="0" marginheight="0"></iframe>
<div id="ipbwrapper"><div id="ipbwrapper2"><div id="ipbwrapper3">
<center><!--ipb.javascript.start-->
Выдает мне html от запрошенной страницы, а дальше выдает ещё и html главной. Не пойму в чем проблема?
 
Ответить с цитированием

  #5  
Старый 13.02.2010, 22:24
rikko
Новичок
Регистрация: 23.11.2009
Сообщений: 14
Провел на форуме:
178353

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

как это может работать, если ты не шлешь данные POST? Ты хочешь сделать, чтоб работала прогрмма твоя или исследовать ответы сервера на неправильные запросы? не морочь любдя голову.
 
Ответить с цитированием

  #6  
Старый 13.02.2010, 22:52
Fedcomp
Новичок
Регистрация: 20.09.2009
Сообщений: 5
Провел на форуме:
3308

Репутация: 0
Отправить сообщение для Fedcomp с помощью ICQ
По умолчанию

Ну для начала надо чтобы программа просто посылала post запрос на сервер, и получала ответ, а не плевалась.
Я не знаю откуда брать размер для Content-Length: 0
 
Ответить с цитированием

  #7  
Старый 13.02.2010, 22:58
wolmer
Постоянный
Регистрация: 12.05.2009
Сообщений: 395
Провел на форуме:
4761503

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

Цитата:
Сообщение от Fedcomp  
Ну для начала надо чтобы программа просто посылала post запрос на сервер, и получала ответ, а не плевалась.
Я не знаю откуда брать размер для Content-Length: 0
Описание протокола "http" в руки! Ибо отправить то не знаю что -> глупо
Размер Content-Length -> число букв того после "Content-Length"

в данном случае буквы у нас эти:
SAVEURL=&SERVER=1&account=111&pass=222&submit=%C2% EE%E9%F2%E8
 
Ответить с цитированием

  #8  
Старый 14.02.2010, 12:19
Fedcomp
Новичок
Регистрация: 20.09.2009
Сообщений: 5
Провел на форуме:
3308

Репутация: 0
Отправить сообщение для Fedcomp с помощью ICQ
По умолчанию

Так, действительно сглупил, забыл отправить post данные отправил только пакет)
Теперь проблема осталась только в том, что я получаю html от моего .php скрипта, а следом за ним html главной страницы (Причем http ответ только один, раньше их было 2, второй был 400 т.е ошибочный запрос)
Сам post запрос
Код:
POST /bl.php HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7
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
Referer: http://127.0.0.1/bl.htm
Cookie: testcookie=1
Content-Type: application/x-www-form-urlencoded
Content-Length: 61

SAVEURL=&SERVER=1&account=111&pass=222&submit=%C2%EE%E9%F2%E8
Теперь он точный
Вот что получается
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
передача через idhttp post SultanOFF С/С++, C#, Delphi, .NET, Asm 6 04.02.2010 06:14
Передать файл через post ICS SultanOFF С/С++, C#, Delphi, .NET, Asm 3 25.01.2010 01:01
Живые прокси xdx ICQ 111 15.04.2007 13:10
Залить шелл через подделку http запросов, на примере ipb 1.3 SURRENDER Форумы 25 13.04.2005 15:37
Идея брутофорса асек через Http запросы. FUNTiK Комментарии к видео 20 05.03.2005 20:14



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


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




ANTICHAT.XYZ