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

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

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

C# HTTP POST
  #1  
Старый 19.02.2009, 18:22
Maxidrom
Новичок
Регистрация: 04.02.2009
Сообщений: 12
Провел на форуме:
18348

Репутация: 0
По умолчанию C# HTTP POST

Всем привет, помогите тут разобраться кое в чем, пытаюсь заставить сервер прислать мне страницу методом POST, вот что имеется:
Код:
       public static string Login()
        {
            IPHostEntry hostEntry = Dns.GetHostEntry("сайт");
            IPAddress address = hostEntry.AddressList[0];
            IPEndPoint ipe = new IPEndPoint(address, 80);
            Socket socket = new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

            try
            {
                socket.Connect(ipe);
                if (socket.Connected)
                {
                    Console.WriteLine("Connected to " + ipe.ToString());
                }
                else
                {
                    Console.WriteLine("Can not connect...");
                }
            }
            catch (SocketException ex)
            {
                Console.WriteLine(ex.Message);
            }

            string request = 
                "POST сайт HTTP/1.1\r\n" +
                "Accept: text/html\r\n" +
                "Host: сайт\r\n" +
                "Cookie: income=1\r\n" +
                "Referer: сайт\r\n"+
                "Content-Length: " + "142" + "\r\n" + 
                "Content-Type: application/x-www-form-urlencoded\r\n\r\n"
                +"параметры";

            Byte[] bytesSent = Encoding.ASCII.GetBytes(request);
            Byte[] bytesReceived = new Byte[1024];
            socket.Send(bytesSent, bytesSent.Length, 0);
            string page = "";
            int bytes = 0;

            do
            {
                bytes = socket.Receive(bytesReceived, bytesReceived.Length, 0);
                page = page + Encoding.ASCII.GetString(bytesReceived, 0, bytes);
            }
            while (bytes > 0);

            return page;
        }
Получаю вместо страницы это:
Код:
HTTP/1.1 302 Moved Temporarily
X-Powered-By: Servlet/2.5
Server: Sun Java System Application Server 9.1_02
Set-Cookie: JSESSIONID=ac85e657399e7058ae4fd3fe2505; Path=/
Pragma: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Cache-Control: no-cache
Cache-Control: no-store
X-Powered-By: JSF/1.2
Location: сайт
Content-Type: text/html; charset=iso-8859-1
Content-Length: 0
Date: Wed, 18 Feb 2009 19:06:40 GMT
Connection: close
Чего не хватает?

Последний раз редактировалось Maxidrom; 19.02.2009 в 18:25..
 
Ответить с цитированием

  #2  
Старый 19.02.2009, 18:34
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


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

Если ты всё правильно послал, и это действительно тот результат, который предусмотрен логикой сайта, то при получении HTTP-кода 302 ты должен проследовать туда, куда тебе указывает Location в ответе. Такая схема вполне нормальна при авторизации, например. Ты отправляешь постом необходимые данные, а в ответ скрипт посылает тебе 302 Moved Temporarily и указание того, что ты должен открыть далее. Это называется "редирект".
 
Ответить с цитированием

  #3  
Старый 19.02.2009, 18:38
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


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

Ах да... Забыл добавить, не забывай анализировать строки установки кук, у тебя это:

Set-Cookie: JSESSIONID=ac85e657399e7058ae4fd3fe2505; Path=/

То есть при переходе на страницу куда тебя послали в 302 ответе ты должен будешь указать:

Cookie: JSESSIONID=ac85e657399e7058ae4fd3fe2505; Path=/

Иначе сайт не подхватит твою сессию.
 
Ответить с цитированием

  #4  
Старый 19.02.2009, 19:48
Maxidrom
Новичок
Регистрация: 04.02.2009
Сообщений: 12
Провел на форуме:
18348

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

groundhog ок сделал как ты посоветовал, но ответа нет и вовсе, вобщем в своем коде сразу после цикла добавил:
Код:
string[] get = 
            {"GET адрес из Location HTTP/1.1",
                "Accept: text/html" ,
                "Host: сайт" ,
                "Referer: откуда",
                ""
         };
// В temp загнал куки
get[get.Length-1] = "Cookie:" + temp;
// Шлю серверу
socket.Send(bytesSent, bytesSent.Length, 0);
В ответ ничего не получаю, и еще вопрос, возможно я щас попробую еще, ответ что из себя представлять будет, допустим HTTP/1.1 200 OK, там что-то еще и дальше сама страница?
 
Ответить с цитированием

  #5  
Старый 19.02.2009, 19:52
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


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

Если 200 OK то следом после хидеров ты получаешь контент запрошенного ресурса, то есть содержимое страницы в твоём случае. Если у тебя запрос "повис" то ты скорее всего не правильно сормировал пакет. В GET запросах такое бывает сплошь и рядом, если ты после хидеров не указал пустую строку. После последнего хидера обязательно должно быть \r\n\r\n.
 
Ответить с цитированием

  #6  
Старый 19.02.2009, 20:05
Maxidrom
Новичок
Регистрация: 04.02.2009
Сообщений: 12
Провел на форуме:
18348

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

Спасибо groundhog буду сейчас пробовать.
 
Ответить с цитированием

  #7  
Старый 19.02.2009, 21:42
Maxidrom
Новичок
Регистрация: 04.02.2009
Сообщений: 12
Провел на форуме:
18348

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

Ребят а что делать если возникает ошибка 505 HTTP Version Not Supported, я юзаю HTTP/1.1, снифером смотрел браузер тоже HTTP/1.1 юзает, где косяк может быть? Опять неправильно составил запросы?

Отбой ребят, пробел лишний поставил))) все работает, спасибо за помощь

Последний раз редактировалось Maxidrom; 19.02.2009 в 21:47..
 
Ответить с цитированием

  #8  
Старый 19.02.2009, 22:46
Maxidrom
Новичок
Регистрация: 04.02.2009
Сообщений: 12
Провел на форуме:
18348

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

Работает но что-то не так как нужно, не ту страницу грузит, вот когда я делаю редирект, правильно ли делать это методом GET, в принципе так делает и браузер, снифер показывает сначала POST потом GET, Location взял, куки взял, чего-то может быть не хватает?
 
Ответить с цитированием

  #9  
Старый 20.02.2009, 00:21
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


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

Всё правильно, по редиректу идёшь методом GET. Проверь ещё раз кукисы, любая неточность может приводить к непредсказуемому результату. Ну и, конечно, когда идёшь на страницу после редиректа - передавай referer с той страницей которая послала этот редирект. Реферер может анализироваться скриптами и перебрасывать куда-нибудь ещё если не удовлетворяет требованиям.
 
Ответить с цитированием

  #10  
Старый 20.02.2009, 01:18
Maxidrom
Новичок
Регистрация: 04.02.2009
Сообщений: 12
Провел на форуме:
18348

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

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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Живые прокси xdx ICQ 111 15.04.2007 13:10
Proxy Kozak-Scv Анонимность 2 11.02.2007 17:28
Коды состояния HTTP - Коды ошибок http сервера D=P=CH= MOD= *nix 6 15.10.2006 20:47
2.1.5 сплойт. Новый? Sulf aka Joker Форумы 8 12.07.2006 07:39
Уязвимость Invision Power Board 2.1.5 Go0o$E Форумы 106 05.05.2006 21:35



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


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




ANTICHAT.XYZ