Накрутчик naKRUT от мну

Discussion in 'PHP' started by А®ТеS, 17 Jun 2007.

  1. А®ТеS

    А®ТеS Active Member

    Joined:
    25 Nov 2006
    Messages:
    198
    Likes Received:
    193
    Reputations:
    41
    Недавно мне потребовалось накрутить свой рейтиг на одном из ресурсов необъятного инета =), тогда я написал небольшой спритик без какого либо подобия GUI. Потом ко мне за ним обратилась пара и людей и я понял, что сделал довольно ценную вещь и можно ее развить. Что получилось смотреть вам, я же опишу лишь основные возможности скрипта:
    - Накрут через прокси (прокси берутся из файла)
    - В скрипте есть удобный редактор этих самых прокси
    - Есть авторизация, так что без вас накрутчиком не воспользуются
    - Есть возможность формирования HTTP запроса как автоматически, так и полностью вручную, далее я буду говорить только о возможностях автоматического формирования
    - Для работы со скриптом не нужно знать HTTP
    - Есть возможность подделывать Cookies, User-Agent и др.
    - Есть возможность поставить "паузу" между отправками HTTP пакетов
    - Есть возможность выбора метода (GET\POST)
    Перечень неполный, т.к. все перечислять влом.

    Пользовательский интерфейс скрипта выполнен
    полностью на английском языке. Чем это объясняется? Очень просто - прикладной протокол HTTP разрабатывался за бугром и воизбежании путаницы с понятиями и определениями я выполнял все на "родном" ему языке.

    Автором являюсь я, я никоим образом не использовал чужих наработок.

    А вот наконец и код:
    PHP:
    <?php
    $afftar 
    "</br><a href='javascript:history.back(1)'>Back</a></br>(C)oded by A®TeS</br>ICQ: 903521";
        IF (isset(
    $_POST["timeout"]) && isset($_POST["typequest"]) && isset($_POST["host"]) && isset($_POST["link"]) && isset($_POST["separator"]) && isset($_POST["proxylist"]) && isset($_POST["portlink"]) && isset($_POST["levelwarning"]) && $_POST["login"] == 'naKRUT' && md5($_POST["pass"]) == '18c042965338ff2850e357cc918e23b5') {

            
    $proxylist file($_POST["proxylist"]);
            
    $separator $_POST["separator"];
            
    $timeout $_POST["timeout"];
            
    $typequest $_POST["typequest"];
            
    $questcontent $_POST["questcontent"];
            
    $host $_POST["host"];
            
    $link $_POST["link"];
            
    $portlink $_POST["portlink"];

            SWITCH (
    $_POST["levelwarning"]) {
                Case 
    "E_ALL":
                
    error_reporting(E_ALL);
                break;
                Case 
    "E_NOTICE":
                
    error_reporting(E_NOTICE);
                break;
                Case 
    "E_WARNING":
                
    error_reporting(E_WARNING);
                break;
                Case 
    "E_ERROR":
                
    error_reporting(E_ERROR);
                break;
            }

            
    $user_agent = array("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en)""Opera/9.21 (Windows NT 5.1; U; ru)""Mozilla/5.0 (Windows NT 5.1; U; ru; rv:1.8.0) Gecko/20060728 Firefox/1.5.0");

            
    $size sizeof($proxylist);

                for (
    $i 0$i $size$i++) {
                    
    $proxy $proxylist[$i];
                    
    preg_match('/(\d+)/s'substr($proxystrpos($proxy$separator) + 1strlen($proxy) - strpos($proxy$separator)), $port);        
                    
    $proxy substr($proxy0strpos($proxy$separator));
                    
    $fp fsockopen($proxy$port[1], $errno$errstr$timeout);
                        if(
    $fp) {
                            
    $agent rand(02);
                            IF (
    $typequest == "POST") {
                                
    $headers  "POST http://$host$link HTTP/1.1\r\n";
                                
    $headers .= "Host: $host:$portlink\r\n";
                                    IF (isset(
    $_POST["cookie"]) && $_POST["cookie"] != '')
                                    {
                                        
    $headers .= "Cookie: ";
                                        
    $headers .= $_POST["cookie"];
                                        
    $headers .= "\r\n";
                                    }
                                    IF (isset(
    $_POST["ref"]) && $_POST["ref"] != '')
                                    {
                                        
    $headers .= "Referrer: ";
                                        
    $headers .= $_POST["ref"];
                                        
    $headers .= "\r\n";
                                    }
                                    IF (isset(
    $_POST["useragent"]) && $_POST["useragent"])
                                    {
                                        
    $headers .= "User-Agent: $user_agent[$agent]\r\n";
                                    }
                                
    $headers .= "Content-type: application/x-www-form-urlencoded\r\n";
                                
    $headers .= "Content-Length: ".strlen($questcontent)."\r\n";
                                    IF (isset(
    $_POST["connection"]) && $_POST["connection"] == "close")
                                    {
                                        
    $headers .= "Connection: close\r\n\r\n";
                                    }
                                    IF (isset(
    $_POST["connection"]) && $_POST["connection"] == "Keep-Alive")
                                    {
                                        
    $headers .= "Connection: Keep-Alive\r\n\r\n";
                                    }
                                
    fwrite($fp$headers.$questcontent);
                            }
                            IF (
    $typequest == "GET") {
                                
    $headers  "GET http://$host$link?$questcontent HTTP/1.1\r\n";
                                
    $headers .= "Host: $host:$portlink\r\n";
                                    IF (isset(
    $_POST["cookie"]) && $_POST["cookie"] != ''
                                    {
                                        
    $headers .= "Cookie: ";
                                        
    $headers .= $_POST["cookie"];
                                        
    $headers .= "\r\n";
                                    }
                                    IF (isset(
    $_POST["ref"]) && $_POST["ref"] != '')
                                    {
                                        
    $headers .= "Referrer: ";
                                        
    $headers .= $_POST["ref"];
                                        
    $headers .= "\r\n";
                                    }
                                    IF (isset(
    $_POST["useragent"]) && $_POST["useragent"])
                                    {
                                        
    $headers .= "User-Agent: $user_agent[$agent]\r\n";
                                    }
                                    IF (isset(
    $_POST["connection"]) && $_POST["connection"] == "close")
                                    {
                                        
    $headers .= "Connection: close\r\n\r\n";
                                    }
                                    IF (isset(
    $_POST["connection"]) && $_POST["connection"] == "Keep-Alive")
                                    {
                                        
    $headers .= "Connection: Keep-Alive\r\n\r\n";
                                    }
                                
    fwrite($fp$headers);
                            }
                            
    fclose($fp);
                            
    sleep($_POST["sleep"]);
                        }
                }
        Echo 
    "<html><head><meta http-equiv='Content-Type' content='text/html; charset=windows-1251'><title>Script naKRUT v 1.1</title></head><div align='center'><font color='red' size=+2>Total statistic:</div></font><table align='center'><tr bgcolor=#FFFFAAAA><td>Proxy servers:</td><td>$size</td></tr><tr bgcolor=#FFFFAAAA><td>Timeout:</td><td>$timeout</td></tr><tr bgcolor=#FFFFAAAA><td>Full URL script:</td><td>http://$host$link</td><tr bgcolor=#FFFFAAAA><td>Method:</td><td>$typequest</td></tr><tr bgcolor=#FFFFAAAA><td>HTTP request:</td>";
            IF (
    $typequest == "POST")
            {
            Echo 
    "<td><pre>$headers$questcontent</pre></td>";
            }
            else
            {
            Echo 
    "<td><pre>$headers</pre></td>";
            }
        Echo 
    "</tr></table><hr><div align='center'><a href='?main'><font color='grey' size=-2>To main page</a></br><a href='?EditProxyList'>Edit proxy list</a>$afftar</font></div></html>";
        }
        elseif (isset(
    $_GET["EditProxyList"])) {
            IF (isset(
    $_POST["CONTENT"]) && isset($_POST["filename"]) && md5($_POST["pass_1"]) == '18c042965338ff2850e357cc918e23b5' && $_POST["login_1"] == 'naKRUT')
            {
                If (
    file_exists($_POST["filename"]) == TRUE && is_writable($_POST["filename"]) == TRUE)
                {
                        SWITCH (
    $_POST["mode"])
                        {
                            Case 
    "w":
                            
    $fp fopen($_POST["filename"], 'w');
                            break;
                            Case 
    "rp":
                            
    $fp fopen($_POST["filename"], 'r+');
                            break;
                            Case 
    "a":
                            
    $fp fopen($_POST["filename"], 'a');
                            break;
                        }
                        if (Isset(
    $_POST["CONTENT"]) == true)
                        {
                        
    FWrite($fp$_POST["CONTENT"]);
                        }
                    
    fclose($fp);
                echo 
    "Content has changed!!!";
                }
                else
                {
                echo 
    "ERROR</br>Trables with writable or existing file!";
                }
            
    clearstatcache();
            }
            Echo 
    '<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1251"><title>Script naKRUT v 1.1</title></head>';
            echo 
    "<div align='center'><font color='RED' size=+3>Script naKRUT v. 1.1</font></br>";
            echo 
    "<div align='center'><font color='RED' size=+2>Edit proxy list</font></br>";
            ECHO 
    "<form method='POST'><table align='center'>";
            echo 
    "<tr bgcolor=#FFFFAAAA><td><font color='red'>*</font>Filename:</td><td><input type='TEXT' name='filename'></td>";
            echo 
    "<tr bgcolor=#FFFFAAAA><td><font color='red'>*</font>Open mode:</td><td><select name='mode'><option value='rp'>r+</option><option value='w' selected>w</option><option value='a'>a</option></select></td></tr>";
            echo 
    "<tr bgcolor=#FFFFAAAA><td><font color='red'>*</font>Login:</td><td><input type='TEXT' name='login_1'></td></tr>";
            echo 
    "<tr bgcolor=#FFFFAAAA><td><font color='red'>*</font>Password:</td><td><input type='PASSWORD' name='pass_1'></td></tr>";
            echo 
    "<tr bgcolor=#FFFFAAAA><td>Content:</td><td><TEXTAREA NAME='CONTENT' ROWS=20 COLS=70></TEXTAREA></td></tr></table>";
            echo 
    "<div align='center'><Input type='SUBMIT' value='            GO!            '></div>";
            echo 
    "<hr><a href='?main'><font color='grey' size=-2>To main page</a>$afftar</font>";
            echo 
    "</form></html>";
        }
        elseif (!isset(
    $_GET["hand"])) {
            Echo 
    '<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1251"><title>Script naKRUT v 1.1</title></head><table align="center">';
            echo 
    "<div align='center'><font color='RED' size=+3>Script naKRUT v. 1.1</font></br>";
            echo 
    "<div align='center'><font color='RED' size=+2>Main page</font></br>";
            echo 
    "<div align='center'><font color='lemon'>HandMade Never! | <a href = '?hand'>HandMade Forever!</a></font></br>";
            echo 
    '<tr bgcolor=#FFFFAAAA><td><form method="POST"><font color="red">*</font>Error_reporting:</td><td bgcolor=#FFFFAAAA><select name="levelwarning"><option value="E_ALL">E_ALL</option><option value="E_NOTICE">E_NOTICE</option><option value="E_WARNING" selected>E_WARNING</option><option value="E_ERROR">E_ERROR</option></select></td></tr>';
            echo 
    "<tr bgcolor=#FFFFAAAA><td><font color='red'>*</font>Timeout:</td><td><input type='TEXT' name='timeout' value='10'></td></tr>";
            echo 
    "<tr bgcolor=#FFFFAAAA><td><font color='red'>*</font>Host:</td><td><input type='TEXT' name='host'></td></tr>";
            echo 
    "<tr bgcolor=#FFFFAAAA><td><font color='red'>*</font>Link:</td><td><input type='TEXT' name='link'></td></tr>";
            echo 
    "<tr bgcolor=#FFFFAAAA><td><font color='red'>*</font>Separator:</td><td><input type='TEXT' name='separator' value=':'></td></tr>";
            echo 
    "<tr bgcolor=#FFFFAAAA><td><font color='red'>*</font>Path to list with proxy:</td><td><input type='TEXT' name='proxylist' value='prox_list.txt'></td></tr>";
            echo 
    "<tr bgcolor=#FFFFAAAA><td><font color='red'>*</font>Port of host:</td><td><input type='TEXT' name='portlink' value='80'></td></tr>";
            echo 
    "<tr bgcolor=#FFFFAAAA><td><font color='red'>*</font>Sleep:</td><td><input type='TEXT' name='sleep' value='0'></td></tr>";
            echo 
    "<tr bgcolor=#FFFFAAAA><td><font color='red'>*</font>Method_name:</td><td><select name='typequest'><option value='POST' selected>POST</option><option value='GET'>GET</option></select></td></tr>";
            echo 
    "<tr bgcolor=#FFFFAAAA><td>Cookie:</td><td><input type='TEXT' name='cookie'></td></tr>";
            echo 
    "<tr bgcolor=#FFFFAAAA><td>Referrer:</td><td><input type='TEXT' name='ref'></td></tr>";
            echo 
    "<tr bgcolor=#FFFFAAAA><td>Questcontent:</td><td><input type='TEXT' name='questcontent'></td></tr>";
            echo 
    "<tr bgcolor=#FFFFAAAA><td><font color='red'>*</font>Connection:</td><td><select name='connection'><option value='close' selected>close</option><option value='Keep-Alive'>Keep-Alive</option></select></td></tr>";
            echo 
    "<tr bgcolor=#FFFFAAAA><td><font color='red'>*</font>False User-Agent:</td><td><input type='checkbox' name='useragent' checked></td></tr>";
            echo 
    "<tr bgcolor=#FFFFAAAA><td><font color='red'>*</font>Login:</td><td><input type='TEXT' name='login'></td></tr>";
            echo 
    "<tr bgcolor=#FFFFAAAA><td><font color='red'>*</font>Password:</td><td><input type='PASSWORD' name='pass'></td></tr></table>";
            echo 
    "<div align='center'><input type='submit' value='            GO!            '></div>";
            echo 
    "</form><hr><div align='center'><a href='?EditProxyList'><font color='grey' size=-2>Edit proxy list</a>$afftar</font></html></div>";
        }
        elseif (isset(
    $_POST["hand"]) && $_POST["login"] == 'naKRUT' && md5($_POST["pass"]) == '18c042965338ff2850e357cc918e23b5') {

            
    $proxylist file($_POST["proxylist"]);
            
    $separator $_POST["separator"];
            
    $timeout $_POST["timeout"];

            SWITCH (
    $_POST["levelwarning"]) {
                Case 
    "E_ALL":
                
    error_reporting(E_ALL);
                break;
                Case 
    "E_NOTICE":
                
    error_reporting(E_NOTICE);
                break;
                Case 
    "E_WARNING":
                
    error_reporting(E_WARNING);
                break;
                Case 
    "E_ERROR":
                
    error_reporting(E_ERROR);
                break;
            }

            
    $size sizeof($proxylist);

                for (
    $i 0$i $size$i++) {
                    
    $proxy $proxylist[$i];
                    
    preg_match('/(\d+)/s'substr($proxystrpos($proxy$separator) + 1strlen($proxy) - strpos($proxy$separator)), $port);        
                    
    $proxy substr($proxy0strpos($proxy$separator));
                    
    $fp fsockopen($proxy$port[1], $errno$errstr$timeout);
                        if(
    $fp) {
                            
    fwrite($fp$_POST["httpreq"]);
                            
    sleep($_POST["sleep"]);
                            }
                    
    fclose($fp);
                }
        echo 
    "<html><head><meta http-equiv='Content-Type' content='text/html; charset=windows-1251'><title>Script naKRUT v 1.1</title></head><div align='center'><font color='red' size=+2>Total statistic:</div></font><table align='center'><tr bgcolor=#FFFFAAAA><td>Proxy servers:</td><td>$size</td></tr><tr bgcolor=#FFFFAAAA><td>Timeout:</td><td>$timeout</td></tr><tr bgcolor=#FFFFAAAA><td>HTTP request:</td>";
        echo 
    "<td><pre>";
        echo 
    $_POST["httpreq"];
        echo 
    "</pre></td>";

        Echo 
    "</tr></table><hr><div align='center'><a href='?main'><font color='grey' size=-2>To main page</a></br><a href='?EditProxyList'>Edit proxy list</a>$afftar</font></div></html>";
        }
        else {
            echo 
    '<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1251"><title>Script naKRUT v 1.1</title></head><table align="center">';
            echo 
    "<div align='center'><font color='RED' size=+3>Script naKRUT v. 1.1</font></br>";
            echo 
    "<div align='center'><font color='RED' size=+2>Main page</font></br>";
            echo 
    "<div align='center'><font color='lemon'> <a href = '?main'>HandMade Never!</a> | HandMade Forever!</font></br>";
            echo 
    '<tr bgcolor=#FFFFAAAA><td><form method="POST"><font color="red">*</font>Error_reporting:</td><td bgcolor=#FFFFAAAA><select name="levelwarning"><option value="E_ALL">E_ALL</option><option value="E_NOTICE">E_NOTICE</option><option value="E_WARNING" selected>E_WARNING</option><option value="E_ERROR">E_ERROR</option></select></td></tr>';
            echo 
    "<tr bgcolor=#FFFFAAAA><td><font color='red'>*</font>Timeout:</td><td><input type='TEXT' name='timeout' value='10'></td></tr>";
            echo 
    "<tr bgcolor=#FFFFAAAA><td><font color='red'>*</font>Separator:</td><td><input type='TEXT' name='separator' value=':'></td></tr>";
            echo 
    "<tr bgcolor=#FFFFAAAA><td><font color='red'>*</font>Path to list with proxy:</td><td><input type='TEXT' name='proxylist' value='prox_list.txt'></td></tr>";
            echo 
    "<tr bgcolor=#FFFFAAAA><td><font color='red'>*</font>Sleep:</td><td><input type='TEXT' name='sleep' value='0'></td></tr>";
            echo 
    "<tr bgcolor=#FFFFAAAA><td><font color='red'>*</font>Content HTTP-request:</td><td><TEXTAREA NAME='httpreq' ROWS=20 COLS=70></TEXTAREA></td></tr>";
            echo 
    "<tr bgcolor=#FFFFAAAA><td><font color='red'>*</font>Login:</td><td><input type='TEXT' name='login'></td></tr>";
            echo 
    "<tr bgcolor=#FFFFAAAA><td><font color='red'>*</font>Password:</td><td><input type='PASSWORD' name='pass'></td></tr></table>";
            echo 
    "<input type='hidden' name='hand'>";
            echo 
    "<div align='center'><input type='submit' value='            GO!            '></div>";
            echo 
    "</form><hr><div align='center'><a href='?EditProxyList'><font color='grey' size=-2>Edit proxy list</a>$afftar</font></html></div>";
        }
    ?>
    З.Ы. Чуть не забыл, по умолчания пароль/логин накрутчика: naKRUT/naKRUT
     
    #1 А®ТеS, 17 Jun 2007
    Last edited: 17 Jun 2007