pproxy - прокси на PHP

Discussion in 'Избранное' started by bons, 24 Nov 2008.

  1. bons

    bons Elder - Старейшина

    Joined:
    20 Dec 2007
    Messages:
    286
    Likes Received:
    121
    Reputations:
    21
    да, в логах веб-сервера где лежит pproxy будет User-Agent указанный в перловом скрипте.
    Code:
    my $user_agent = 'Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4';
    В логах целевого веб-сервера, к которому идет запрос, останется User-Agent браузера без изменений. Изменить его можно например с помощью плагинa для firefox (Modify Headers).
    Также легко изменить User-Agent браузера дописав в plocal.pl одну строчку после комментария "#Преобразование HTTP заголовка":
    Code:
    $request -> header('User-Agent' => 'Opera/9.62 (X11; Linux i686; U; ru) Presto/2.1.1');
    в таком случае для веб-сервера который используется как прокси это будет firefox а для целевого веб-сервера - opera. Но если так сделать при использовании цепочки то это будет opera для всех элементов цепочки кроме первого.
     
    #41 bons, 10 Jan 2009
    Last edited: 10 Jan 2009
    1 person likes this.
  2. AkyHa_MaTaTa

    AkyHa_MaTaTa Elder - Старейшина

    Joined:
    19 Mar 2007
    Messages:
    557
    Likes Received:
    306
    Reputations:
    27
    Сенкс, я уже догнал, еше бы подержку ssl(https) вообше было бы класс, для этого как я понял нужно включить поддержку носков, извините что повторяюсь :) .
     
    1 person likes this.
  3. bons

    bons Elder - Старейшина

    Joined:
    20 Dec 2007
    Messages:
    286
    Likes Received:
    121
    Reputations:
    21
    Напишу локальную часть скрипта на С или паскале но вряд ли смогу взяться за это раньше чем через пару недель. То же самое и про SOCKS версию.
     
  4. AkyHa_MaTaTa

    AkyHa_MaTaTa Elder - Старейшина

    Joined:
    19 Mar 2007
    Messages:
    557
    Likes Received:
    306
    Reputations:
    27
    кстати в пхп сервере можно и увеличить было бы время отводимое на конект, на некоторых серваках оно по дефолту так сказать не большое и связь просто режеться:

    PHP:

      
    if($fp fsockopen($ip$port,$errno$errstr30))

     
    1 person likes this.
  5. AkyHa_MaTaTa

    AkyHa_MaTaTa Elder - Старейшина

    Joined:
    19 Mar 2007
    Messages:
    557
    Likes Received:
    306
    Reputations:
    27
    Вроде ды передоваемые данные идут в base64_encode, если писать какой то алгоритм шифровки с помошью ключа то это соответсвенно уменьшит быстродействие.
    По поводу vpleer.ru и мой shinobi.org.ru - то у меня они грузяться нормально(и работают), наверно какие то траблы у тебя с сервером где лежит скрипт-сервер на пхп.
     
  6. needDrivers

    needDrivers New Member

    Joined:
    30 Jan 2009
    Messages:
    16
    Likes Received:
    1
    Reputations:
    0
    Уже всё давно написано - proxy_rd.
     
  7. needDrivers

    needDrivers New Member

    Joined:
    30 Jan 2009
    Messages:
    16
    Likes Received:
    1
    Reputations:
    0
    Для работы с pproxy.php через proxy_rd вот такой конфигурационный скрипт подходит
    PHP:
    function proxy_rd(...)
    {
        
    char *header;
        
    char *header2;
        
    char *temp;
        
    char *temp2;
        
    char *post;
        
        
    header NULL;
        
    header2 NULL;
        
    post NULL;

        *
    rdhost dup("localhost");
        
    //*rdport = dup("3129");

        
    add(&header2"POST http://localhost/lab/pproxy.php HTTP/1.0\r\n");
        
    add(&header2"Host: localhost\r\n");
        
    //add(&header2, "Proxy-Connection: close\r\n");
        
    add(&header2"Connection: close\r\n");
        
    add(&header2"Content-Type: application/x-www-form-urlencoded\r\n");

        
    add(&headermethod);
        
    add(&header" ");
        
    add(&headeruri_relative);
        
    add(&header" ");
        
    add(&headerprotocol);
        
    add(&header"\r\n");

        
    add(&header"Connection: close\r\n");

        if(!
    isempty(h_host_port))
        {
            
    add(&header"Host: ");
            
    add(&headerh_host_port);
            
    add(&header"\r\n");
        }

        if(!
    isempty(h_cache_control))
        {
            
    add(&header"Cache-Control: ");
            
    add(&headerh_cache_control);
            
    add(&header"\r\n");
        }

        if(!
    isempty(h_pragma))
        {
            
    add(&header"Pragma: ");
            
    add(&headerh_pragma);
            
    add(&header"\r\n");
        }

        if(!
    isempty(h_accept))
        {
            
    add(&header"Accept: ");
            
    add(&headerh_accept);
            
    add(&header"\r\n");
        }

        if(!
    isempty(h_accept_lang))
        {
            
    add(&header"Accept-Language: ");
            
    add(&headerh_accept_lang);
            
    add(&header"\r\n");
        }

        if(!
    isempty(h_accept_charset))
        {
            
    add(&header"Accept-Charset: ");
            
    add(&headerh_accept_charset);
            
    add(&header"\r\n");
        }

        if(!
    isempty(h_if_mod_since))
        {
            
    add(&header"If-Modified-Since: ");
            
    add(&headerh_if_mod_since);
            
    add(&header"\r\n");
        }

        if(!
    isempty(h_if_none_match))
        {
            
    add(&header"If-None-Match: ");
            
    add(&headerh_if_none_match);
            
    add(&header"\r\n");
        }

        if(!
    isempty(h_referer))
        {
            
    add(&header"Referer: ");
            
    add(&headerh_referer);
            
    add(&header"\r\n");
        }

        if(!
    isempty(h_user_agent))
        {
            
    add(&header"User-Agent: ");
            
    add(&headerh_user_agent);
            
    add(&header"\r\n");
        }

        if(!
    isempty(h_authorization))
        {
            
    add(&header"Authorization: ");
            
    add(&headerh_authorization);
            
    add(&header"\r\n");
        }

        if(!
    isempty(h_range))
        {
            
    add(&header"Range: ");
            
    add(&headerh_range);
            
    add(&header"\r\n");
        }

        if(!
    isempty(h_content_type))
        {
            
    add(&header"Content-Type: ");
            
    add(&headerh_content_type);
            
    add(&header"\r\n");
        }

        if(!
    isempty(h_content_length))
        {
            
    add(&header"Content-Length: ");
            
    add(&headerh_content_length);
            
    add(&header"\r\n");
        }

        if(!
    isempty(h_cookie))
        {
            
    add(&header"Cookie: ");
            
    add(&headerh_cookie);
            
    add(&header"\r\n");
        }

        
    add(&headerh_unknown);

        
    add(&header"\r\n");

        
    add(&post"host=");
        
    temp dup(host);
        
    add(&temp":");
        
    add(&tempisempty(port)?"80":port);
        
    temp2 encode(temp);
        
    add(&posttemp2);
        
    free(temp);
        
    free(temp2);
        
    add(&post"&query=");
        
    temp encode(header);
        
    add(&posttemp);
        
    free(header);
        
    free(temp);
        
        
    add(&header2"Content-Length: ");
        
    temp dupn(strlen(post));
        
    add(&header2temp);
        
    free(temp);
        
    add(&header2"\r\n\r\n");
        
        
    add(&header2post);

        
    free(post);

        
    //msg("debug message", header);

        
    return header2;
    }
     
  8. zic

    zic New Member

    Joined:
    4 Apr 2003
    Messages:
    6
    Likes Received:
    2
    Reputations:
    0
    жду поддержку https... очень жду....
     
  9. vadim2

    vadim2 New Member

    Joined:
    7 Feb 2009
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Bons, когда будет версия с поддержкой https ? Уже заждался :( . Напиши плиз.
     
  10. needDrivers

    needDrivers New Member

    Joined:
    30 Jan 2009
    Messages:
    16
    Likes Received:
    1
    Reputations:
    0
    Интересно, как ты себе представляешь HTTPS через HTTP?
    Ты хотя бы понимаешь как работают данные протоколы?
     
  11. needDrivers

    needDrivers New Member

    Joined:
    30 Jan 2009
    Messages:
    16
    Likes Received:
    1
    Reputations:
    0
    Выложил последнюю версию proxy_rd.
    Для скачивания будет доступна до 20 февраля.
    http://www.pfzim.ru/download.php?id=9
     
  12. bons

    bons Elder - Старейшина

    Joined:
    20 Dec 2007
    Messages:
    286
    Likes Received:
    121
    Reputations:
    21
    про https ничего не могу сказать, т.к изначально писал SOCKS-версию, которая почти готова. Там надо исправить пару багов (не знаю сколько времени на это уйдет) и тщательно протестировать. Если сильно нужно могу скинуть альфу, которая более или менее работоспособна.
    Почему бы тебе не заюзать альтернативы например HTTPTunnel, в любом случае функционала там больше.

    pproxy, изменено:
    увеличен таймаут коннекта к серверу (см тут)
    тип данных от прокси теперь application/octet-stream (см тут)
    исправлен баг связанный с неправильным приемом данных в plocal.pl в случае фрагментации http заголовка ответа от pproxy
     
    #52 bons, 7 Feb 2009
    Last edited: 7 Feb 2009
  13. Banderos_Russia

    Banderos_Russia Elder - Старейшина

    Joined:
    11 Jun 2007
    Messages:
    60
    Likes Received:
    18
    Reputations:
    0
    у меня просто белые страницы отображаются, в чем может быть дело? в исходниках первого поста ничего не менял
     
  14. vadim2

    vadim2 New Member

    Joined:
    7 Feb 2009
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Я попутал, хотел написать socks :) . Извиняюсь что ввёл в заблуждение :) . Автор скинь альфу.
     
  15. bons

    bons Elder - Старейшина

    Joined:
    20 Dec 2007
    Messages:
    286
    Likes Received:
    121
    Reputations:
    21
    значит pproxy.php не может установить соединение с сервером.

    добавил в plocal.pl вывод сообщений об ошибках

    скинул в личку
     
    #55 bons, 8 Feb 2009
    Last edited: 8 Feb 2009
  16. idTalis

    idTalis Elder - Старейшина

    Joined:
    30 Sep 2008
    Messages:
    31
    Likes Received:
    4
    Reputations:
    -5
    Щас тестировал на трёх серваках
    Залил на первый хост, действую по инструкции, в браузере ввожу полученный прокси, перехожу на любую ссылку и на дисплее пару картинок, предложение создать свой сайт, вообщем это сообщение от хостера на котором висит pproxy
    Ну решил я что проблемма в хосте, залил pproxy на другой хост, включаю прокси, перехожу на любую страницу и открывается PHP info сайта на котором я повесил pproxy
    Попытка номер 3, залил я pproxy на третий хост, включил прокси, перехожу на любую страницу и мне выдаёт:
    это происходит если конектюсь к 80 порту

    а если к 8008, то белые страници, хотя plocal.pl ошибок не выдаёт
     
  17. AkeLLa

    AkeLLa Banned

    Joined:
    30 Aug 2008
    Messages:
    133
    Likes Received:
    243
    Reputations:
    1
    Плохое это прокси.. Ведь на хостинге логи сохраняються кто куда коннектился и что посылал.
     
  18. AkyHa_MaTaTa

    AkyHa_MaTaTa Elder - Старейшина

    Joined:
    19 Mar 2007
    Messages:
    557
    Likes Received:
    306
    Reputations:
    27
    Все зависит от настроек сервака, но то что ты палешься когда обращаешься к скрипту это да(можно конечно испоьзовать цепочку, но все равно на 1 хосте палево), а насчет того куда уже скрипт конекты дает - это уже зависит от того как сервак настроен,есн под таким прокси никто и не собираеться ломать сайт пентагона.
    Bons скинь плизь в ЛС эту версию с socks.
     
  19. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    Да для взлома это не вариант...
    Зато можно как пол ачата, через нее акки для вконтакте брутить, круто же!!1111
     
  20. tipson

    tipson New Member

    Joined:
    13 Feb 2009
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    у мну вопрос непосредственно экспертам или тем, кто в этом шарит

    Спасибо автору кстати за такой скрипт ( год искал)

    наш пров дает интернет и оплата за потраченные трафик, но есть такие сайты (провайдерские), к которым доступ бесплатен
    там есть большой форум (кажется на движке этого же форума)
    есть почта, чат, много игровых серверов
    так вот собственно и вопрос
    можно ли ту удаленную часть, как то внедрить на удаленный сайт?
    потом подключаться к нему и траф будет бесплатный
    и еще как запустить ту часть на перле если у мя виндоус виста?
    нада скачать какую то прогу для создания среды "перл"?


    если кто поможет с решением этого вопроса в долгу не останусь
    а если кто напишет подобную штуку индвидуально к нашему прову и покажет что действительно пашет
    куплю за ххх сумму
     
    #60 tipson, 14 Feb 2009
    Last edited: 14 Feb 2009