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

11.03.2010, 23:56
|
|
Участник форума
Регистрация: 21.04.2009
Сообщений: 173
Провел на форуме: 1756993
Репутация:
249
|
|
уфф, еле разобрался))
Очень пригодилось, спасибо автору)
|
|
|

12.03.2010, 00:08
|
|
Banned
Регистрация: 06.06.2008
Сообщений: 96
Провел на форуме: 2478825
Репутация:
129
|
|
UM9I
А конкретнее?
Файрвол? Не?
Сервер точно поддерживает исходящие соединения?
|
|
|

12.03.2010, 00:18
|
|
Новичок
Регистрация: 15.01.2006
Сообщений: 7
Провел на форуме: 15513
Репутация:
0
|
|
Насчот удалённой машини незнаю.
удалось зальить шелл, и теперь питаюсь pproxy поставить . . . (think)
|
|
|

12.03.2010, 15:25
|
|
Новичок
Регистрация: 08.03.2010
Сообщений: 1
Провел на форуме: 1344
Репутация:
0
|
|
Хотелось бы реализовать сжатие на стороне сервера и распаковку принятых данных в клиенте. На сервере сжимаю в gzip, но как потом сделать декомпресс в клиенте? Кто-нибудь пытался сделать подобное?
|
|
|

13.03.2010, 15:51
|
|
Новичок
Регистрация: 25.01.2010
Сообщений: 4
Провел на форуме: 5281
Репутация:
0
|
|
Сообщение от bons
можно поставить собаку перед функцией explode
Код:
list($host, $port) = @explode(':', base64_decode($_POST['host']));
Помогла следующая коррекрировка:
@list($host, $port) = @explode(':', base64_decode($_POST['host']));
|
|
|

13.03.2010, 18:53
|
|
Участник форума
Регистрация: 07.03.2008
Сообщений: 141
Провел на форуме: 405538
Репутация:
23
|
|
Сообщение от yasya17
А как насчёт прикрутить к этому прокси поддержку FTP?
Удваиваю, было бы отлично.
|
|
|

24.03.2010, 21:22
|
|
Познающий
Регистрация: 26.01.2007
Сообщений: 40
Провел на форуме: 191945
Репутация:
7
|
|
у меня такая проблема не могу сделать цепочку
в батнике:
Код:
perl D:\wamp\www\plocal.pl -px ссылка1 -pwd index perl D:\wamp\www\plocal.pl -px ссылка2 -pwd indexdirect -tpx http://localhost:8008 -bp 8009
в строке пишет
# tunnelhost = localhost
# tunnelport = 8008
# pproxyhost = ссылка2
# pproxyport = 80
# pproxyurl = соответственно путь к файлу2
# bindport = 8009
подключаюсь localhost:8009 пишет Could not connect to pproxy
по отдельности все работает
|
|
|

28.03.2010, 16:31
|
|
Участник форума
Регистрация: 25.10.2008
Сообщений: 215
Провел на форуме: 2483773
Репутация:
78
|
|
Перезалейте плиз GUI от Nightmare с исходниками у кого осталось.
|
|
|

15.05.2010, 08:56
|
|
Moderator - Level 7
Регистрация: 19.12.2008
Сообщений: 1,203
Провел на форуме: 5011696
Репутация:
2221
|
|
Заработало сразу, без проблем.
Спасибо.
|
|
|

27.07.2010, 01:23
|
|
Новичок
Регистрация: 05.06.2010
Сообщений: 0
Провел на форуме: 18765
Репутация:
0
|
|
Вот написал на C++ Builder'e локальную часть (plocal.pl).
Но почему то тяжёлые сайты не грузит, хотя на перловой версии всё норм.
Unin1.h
Код:
Code:
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include "IdCoderMIME.hpp"
#include
#include
struct HTTP_PROXY_DATA
{
AnsiString remote_script;
WORD bind_port;
unsigned int client_sock;
};
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TMemo *Memo;
TLabel *Label1;
TEdit *EPort;
TEdit *EScript;
TButton *BStart;
TIdEncoderMIME *Base64Encode;
TMemo *Memo1;
void __fastcall BStartClick(TObject *Sender);
void __fastcall FormCreate(TObject *Sender);
void __fastcall FormDestroy(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
HTTP_PROXY_DATA proxy_data;
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
unit1.cpp
Код:
Code:
//---------------------------------------------------------------------------
#include
#include
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "IdCoderMIME"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
DWORD WINAPI ProxyThread(LPVOID lpParam);
//---------------------------------------------------------------------------
void ParseHeader(char *header, int header_size, TStringList *header_lst)
{
if(!header_lst) return;
AnsiString header_key = "", tmp;
for(int i = 0; i Add(header_key);
header_key = "";
}
}
}
//---------------------------------------------------------------------------
AnsiString RemoveHeaderVal(TStringList *header_lst, TStringList *remove_key)
{
for(int i = 0; i Count; i++)
{
for(int j = 0; j Count; j++)
{
AnsiString rem;
rem = remove_key->Strings[j];
if(header_lst->Strings[i].SubString(0, rem.Length() + 1) == (rem + ':'))
{
header_lst->Delete(i);
i--;
break;
}
}
}
return header_lst->Text + "\r\n";
}
//---------------------------------------------------------------------------
AnsiString GetHeaderVal(TStringList *header_lst, AnsiString key)
{
AnsiString result;
int flag = 0;
for(int i = 0; i Count; i++)
{
result = header_lst->Strings[i].SubString(0, key.Length() + 1);
if(result == (key + ':'))
{
result = header_lst->Strings[i].SubString(result.Length() + 1,
header_lst->Strings[i].Length());
break;
}
}
for(int i = 1; i bind_port);
serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
res = bind(serv_sock, (sockaddr *)&serv_addr, sizeof(serv_addr));
if(res == SOCKET_ERROR) return -1;
listen(serv_sock, 100);
//MessageBox(0, proxy_data->remote_script.c_str(), 0, 0);
//цикл для клиентов
while(1)
{
int size;
size = sizeof(client_addr);
client_sock = accept(serv_sock, (sockaddr *)&client_addr, &size);
if(client_sock == SOCKET_ERROR) break;
proxy_data->client_sock = client_sock;
hThread = CreateThread(NULL, 0, ProxyThread, proxy_data, 0, NULL);
if(hThread == INVALID_HANDLE_VALUE) break;
CloseHandle(hThread);
}
closesocket(serv_sock);
return 0;
}
//----------------------------------------------------------------------------
DWORD WINAPI ProxyThread(LPVOID lpParam)
{
HTTP_PROXY_DATA *proxy_data = (HTTP_PROXY_DATA *)lpParam;
SOCKET client = proxy_data->client_sock;
int res, swap_len, cur;
char header[1024];
AnsiString result_header, result_host, swap;
TIdHTTP *tunnel = new TIdHTTP(Form1);
TStringStream *result = new TStringStream("");
TStringList *post = new TStringList;
TStringList *header_lst = new TStringList;
TStringList *remove_key = new TStringList;
//получаю хидер от браузера
res = recv(client, header, sizeof(header), 0);
if(res == SOCKET_ERROR || res == 0) return -1;
ParseHeader(header, res, header_lst);
//добавляю в хидер Connection: close
header_lst->Insert(1, "Connection: close");
//удаляю ключи
remove_key->Add("Proxy-Connection");
remove_key->Add("Keep-Alive");
result_header = RemoveHeaderVal(header_lst, remove_key);
//получаю host
result_host = GetHeaderVal(header_lst, "Host");
//перегоняю POST данные в base64
result_header = Form1->Base64Encode->Encode(result_header);
result_host = Form1->Base64Encode->Encode(result_host);
//с помощью TIdHTTP посылаю данные proxy.php
post->Add("query=" + result_header);
post->Add("host=" + result_host);
tunnel->Post(proxy_data->remote_script, post, result);
//посылаю результат обратно браузеру
swap = result->DataString;
swap_len = result->DataString.Length();
cur = 0;
Form1->Memo1->Lines->Add(swap);
while(swap_len > 0)
{
res = send(client, (swap.c_str() + cur), swap_len, 0);
if(res == 0) break;
else if(res == SOCKET_ERROR) {
Form1->Memo->Lines->Add("Ошибка при передачи данных браузеру");
break;
}
swap_len -= res;
cur += res;
}
delete tunnel, post, header_lst, remove_key, result;
closesocket(client);
return 0;
}
//----------------------------------------------------------------------------
void __fastcall TForm1::BStartClick(TObject *Sender)
{
HANDLE hThread;
proxy_data.remote_script = EScript->Text;
proxy_data.bind_port = EPort->Text.ToInt();
hThread = CreateThread(0, 0, ServerProxyThread, &proxy_data, 0, 0);
if(hThread == INVALID_HANDLE_VALUE)
{
Memo->Lines->Add("Не могу создать поток");
return;
}
CloseHandle(hThread);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
WSADATA wsaData;
if(WSAStartup(MAKEWORD(2, 2), &wsaData) != 0)
{
Memo->Lines->Add("WSAStartup error");
return;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
WSACleanup();
}
//---------------------------------------------------------------------------
М.б кто найдёт баг
вот исходники _http://slil.ru/29503509
|
|
|
|
 |
|
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Books PHP
|
FRAGNATIC |
PHP |
186 |
21.02.2010 02:41 |
|
Что такое Php?
|
PAPA212 |
Болталка |
13 |
28.12.2007 20:44 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|