Hack-конкурс

Discussion in 'Болталка' started by ~Fenix~, 24 Mar 2006.

  1. ~Fenix~

    ~Fenix~ Banned

    Joined:
    26 Jul 2005
    Messages:
    190
    Likes Received:
    50
    Reputations:
    6
    Объединенный Открытый Проект проводит конкурс на взлом системы управлением сайта на базе форума Intellect Board. Цель конкурса - обнаружить в Intellect Board критические уязвимости, взломать с их использованием официальный сайт http://intboard.ru и прислать на адрес подробное описание уязвимости и совершенного взлома. Фактом взлома считается вписывание в нижнюю строку copyright-сообщения логина на форуме или адреса Email пользователя, осуществившего взлом (подсказка: данная строка хранится в файле config/iboard.php и может быть изменена из Центра Администрирования).

    Письма с описанием взлома следует посылать на адрес [​IMG].

    Призы конкурса выплачиваются только через платежные системы WebMoney и Яндекс-Деньги (по выбору победителя конкрурса). Величина приза составляет 10 WMZ при выплате через WebMoney или 300 рублей при выплате через Яндекс-Деньги.

    Дата начала конкурса - 1 марта 2006 года. Конкурс проводится в несколько туров. При обнаружении очередной уязвимости конкурс приостанавливается до того момента,когда будет исправлена уязвимость, после чего начинается следующий тур. Признаком того, что в данный момент проводится очередной тур конкурса, является наличие в copyright-сообщении строки "Если вы читаете это, то конкурс продолжается". О завершении конкурса будет объявлено отдельно в новостях проекта Intellect Board.

    В том случае если до объявления о завершении очередного тура конкурса было произведено несколько взломов, то выплата призов следующим образом: если для взлома использовались различные уязвимости, то каждому из победителей конкурса выплачивается призовой фонд в полном объеме. Если использовалась одна и та же уязвимость или аналогичные уязвимости (уязвимости одного типа, находящиеся в пределах одной функции), то выигрыш делится поровну между тем, кто первым осуществил взлом, и тем, кто прислал наиболее технически грамотное и подробное описание совершенного взлома (степень грамотности и подробности определяется участниками Объединенного Открытого Проекта). Всвязи с этим настоятельно рекомендуется указывать в письме точное время взлома и IP-адрес, с которого он был совершен.
    В конфликтных ситуациях разрешение споров о приоритете взлома определяется по логам Intellect Board и логам Web-сервера для сайта intboard.ru. При несоответствии предоставленных данных об IP и времени взлома данным из логов форума и сервера участник снимается к конкурса.

    В выплате призов может быть отказано в следующих случаях:

    1. Взлом был осуществлен не через уязвимость в скриптах Intellect Board, а иными способами (включая, но не ограничиваясь подобором пароля для пользователей System и XXXX Pro, захватом почтового ящика XXXX Pro и последующим извлечением пароля на этот ящик, использованием уязвимостей хостинга).
    2. Если в результате взлома была нарушена работоспособность форума или произошла потеря данных или был нанесен материальный ущерб Объединенному Открытому Проекту или третьим лицам.
    3. При использовании при взломе сайтов, расположенных в доменах 3-ьего уровня зоны intboard.ru (например, тестового форума Intellect Board - http://test.intboard.ru)
    4. При отказе сообщить сведения о совершенном взломе и найденной уязвимости.
    5. При обнаружении попыток внедрения после взлома вредоносного кода или создания пользователей с повышенными правами, не указанных в описании совершенного взлома.

    http://intboard.ru/index.php?f=95
     
  2. censored!

    censored! Green member

    Joined:
    2 Nov 2004
    Messages:
    1,160
    Likes Received:
    299
    Reputations:
    156
    Ради таких денег народ ломать не будет. Точнее - может и будет учавствовать, то точно не ради денег.

    Хм... Получилось случайно: вот исходник файла file.php
    PHP:
    <? /*

    XXXX Pro's Application PHP Programming Interface (XAPhPI) for Intellect Board 2

    (c) 2005, XXXX Pro, United Open Project
    Visit us online: http://openproj.ru
    */

    function &getvar($name) {
      if ((
    strpos($name,"_text")!==false && $name!="pv_text" && $name!="pm_text") || $name=="f_rules") {
          if (isset(
    $_GET[$name])) $tmp $_GET[$name];
          elseif (isset(
    $_POST[$name])) $tmp$_POST[$name];
      }
      else {
          if (isset(
    $_GET[$name])) $tmp htmlspecialchars($_GET[$name]);
          elseif (isset(
    $_POST[$name])) $tmphtmlspecialchars($_POST[$name]);
      }
      
    $tmp=db_slashes($tmp);
      return 
    $tmp;
    }

    function &
    build_select($sql,$value="") {
        
    $res db_query($sql,$GLOBALS['link']);
        
    $tmp "";
        while (
    $tmpdata=db_fetch_row($res)) {
            if (
    $tmpdata[0]==$value$tmp.="<option value=\"".$tmpdata[0]."\" selected>".$tmpdata[1];
            else 
    $tmp.="<option value=\"".$tmpdata[0]."\">".$tmpdata[1];
        }
        
    db_free_result($res);
        return 
    $tmp;
    }

    function &
    build_sql($prefix) {
      
    $tmp "";
      
    $prefixlen strlen($prefix);
      foreach (
    $_POST as $name=>$value) {
          if (
    substr($name,0,$prefixlen)==$prefix && strpos($name,"__")===false && $name!=$prefix."_id") {
               if (
    strpos($name,"_text")===false$value=db_slashes(htmlspecialchars($value));
               else 
    $value=db_slashes($value);
             if (
    $tmp$tmp.=", ";
               
    $tmp .= "$name=\"".$value."\"";
             }
      }
      return 
    $tmp;
    }

    function &
    build_sql_all($prefix) {
      
    $tmp "";
      
    $prefixlen strlen($prefix);
      foreach (
    $_POST as $name=>$value) {
          if (
    substr($name,0,$prefixlen)==$prefix) {
             if (
    $tmp$tmp.=", ";
             
    $tmp .= "$name=\"".db_slashes($value)."\"";
          }
      }
      return 
    $tmp;
    }

    function 
    check($expr) {
        if (
    $expr>0) echo "checked";
    }

    function &
    set_select($select,$value) {
        
    $select=preg_replace("/selected\s+>/is","",$select);
        
    $select=preg_replace("/<option\s+value=\"?$value\"?\.*?>/is","<option value=\"$value\" selected>",$select);
        echo 
    $select;
    }

    function &
    build_pages($count,$start,$perpage,$ref) {
        
    $reflen strlen($ref);
        if (
    $ref[$reflen-1]!="?" && $ref[$reflen-1]!="&") {
            if (!
    strpos($ref,"?")) $ref.="?";
            else 
    $ref.="&";
        }
        if (!
    $perpage$perpage=10;
        
    $numpages ceil($count/$perpage);
        
    $asterisk floor($start/$perpage)*$perpage;
        if (
    $numpages>|| $start>0) {
            
    $pages MSG_pages;
            
    $number=0;
            for (
    $i=1$i<=$numpages$i++) {
              if (
    $number!=$start || $start=="all") {
                  
    $pages.="<a href=\"$ref"."st=".$number."\">$i</a> ";
                  if (
    $asterisk==$number && $start!="all"$pages.=" * ";              
                } 
                else 
    $pages.="$i ";
                
    $number+=$perpage;
          }
          if (
    $start=="all"$pages.="#";
          else 
    $pages.="<a href=\"$ref"."st=all\">#</a> ";
      }
      return 
    $pages;
    }

    function &
    getip() {
        
    $ip;
        if     (
    $_SERVER["HTTP_CLIENT_IP"])       $ip $_SERVER["HTTP_CLIENT_IP"];
        elseif (
    $_SERVER["HTTP_X_FORWARDED_FOR"]) $ip $_SERVER["HTTP_X_FORWARDED_FOR"];
        elseif (
    $_SERVER["HTTP_FORWARDED_FOR"])   $ip $_SERVER["HTTP_FORWARDED_FOR"];
        else   
    $ip $_SERVER["REMOTE_ADDR"];
        
    $ip str_replace(";",",",$ip);
        if (
    strpos($ip,",")!==false$ip=substr($ip,0,strpos($ip,",")-1);
        return 
    $ip;
    }

    function &
    untransliterate($text) {
      
    $text str_replace("["," [",$text);
      
    $text str_replace("]","] ",$text);
      
    $text str_replace("<"," <",$text);
      
    $text str_replace(">","> ",$text);
      
    $words explode(" ",$text);
      
    $skip=0;
      
    $skiptag=0;
      foreach (
    $words as $curword) {
       if (
    strpos($curword,"[url")!==false || strpos($curword,"[code]")!==false || strpos($curword,"[email")!==false ||
           
    strpos($curword,"<a")!==false || strpos($curword,"[_")!==false || $skiptag) { $skiptag=1; }
       else {
        if (
    strpos($curword,"[")!==false || strpos($curword,"<")!==false || $skip) { $skip 1; }
        elseif (!
    array_key_exists($curword,$GLOBALS['smiles'])) {
          
    $curword str_replace("ya","я",$curword);
          
    $curword str_replace("yo","ё",$curword);
          
    $curword str_replace("yu","ю",$curword);
          
    $curword str_replace("ay","ай",$curword);
          
    $curword str_replace("oy","ой",$curword);
          
    $curword str_replace("iy","ий",$curword);
          
    $curword str_replace("yy","ый",$curword);
          
    $curword str_replace("uy","уй",$curword);
          
    $curword str_replace("ey","ей",$curword);
          
    $curword str_replace("sch","щ",$curword);
          
    $curword str_replace("sh","ш",$curword);
          
    $curword str_replace("ch","ч",$curword);
          
    $curword str_replace("zh","ж",$curword);
          
    $curword str_replace("\'","ь",$curword);
          
    $curword str_replace("\"","ъ",$curword);
          
    $curword str_replace("`e","э",$curword);
          
    $curword str_replace("`i","й",$curword);

          
    $curword str_replace("Ya","Я",$curword);
          
    $curword str_replace("Yo","Ё",$curword);
          
    $curword str_replace("Yu","Ю",$curword);
          
    $curword str_replace("Ay","Ай",$curword);
          
    $curword str_replace("Oy","Ой",$curword);
          
    $curword str_replace("Iy","Ий",$curword);
          
    $curword str_replace("Yy","Ый",$curword);
          
    $curword str_replace("Uy","Уй",$curword);
          
    $curword str_replace("Ey","Ей",$curword);
          
    $curword str_replace("Sch","Щ",$curword);
          
    $curword str_replace("Sh","Ш",$curword);
          
    $curword str_replace("Ch","Ч",$curword);
          
    $curword str_replace("Zh","Ж",$curword);

          
    $curword str_replace("YA","Я",$curword);
          
    $curword str_replace("YO","Ё",$curword);
          
    $curword str_replace("YU","Ю",$curword);
          
    $curword str_replace("AY","АЙ",$curword);
          
    $curword str_replace("OY","ОЙ",$curword);
          
    $curword str_replace("IY","ИЙ",$curword);
          
    $curword str_replace("YY","ЫЙ",$curword);
          
    $curword str_replace("UY","УЙ",$curword);
          
    $curword str_replace("EY","ЕЙ",$curword);
          
    $curword str_replace("SCH","Щ",$curword);
          
    $curword str_replace("SH","Ш",$curword);
          
    $curword str_replace("CH","Ч",$curword);
          
    $curword str_replace("ZH","Ж",$curword);
          
    $curword str_replace("`E","Э",$curword);
          
    $curword str_replace("`I","Й",$curword);

          
    $lo_lat=array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","r","s","t","u","v","y","z");
          
    $lo_rus=array("а","б","ц","д","е","ф","г","х","и","ж","к","л","м","н","о","п","р","с","т","у","в","ы","з");

          
    $up_lat=array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","R","S","T","U","V","Y","Z");
          
    $up_rus=array("А","Б","Ц","Д","Е","Ф","Г","Х","И","Ж","К","Л","М","Н","О","П","Р","С","Т","У","В","Ы","З");

          
    $curword =str_replace($lo_lat,$lo_rus,$curword);
          
    $curword =str_replace($up_lat,$up_rus,$curword);
        }
        if (
    strpos($curword,"]")!==false$skip=0;
       }
       if (
    strpos($curword,"[/url]")!==false || strpos($curword,"[/code]")!==false || strpos($curword,"[/email]")!==false
           
    || strpos($curword,"_]")!==false) { $skiptag=0$skip=0; }
       
    $untrans .= $curword." ";
      }
      
    $untrans str_replace(" [","[",$untrans);
      
    $untrans str_replace("] ","]",$untrans);
      
    $untrans str_replace(" <","<",$untrans);
      
    $untrans str_replace("> ",">",$untrans);
      return 
    $untrans;
    }

    function 
    transliterate($text) {
      
    $up_rus=array("А","Б","В","Г","Д","Е","Ё","Ж","З","И","Й","К","Л","М","Н","О","П","Р","С","Т","У","Ф","Х","Ц","Ч","Ш","Щ","Ь","Ы","Ъ","Э","Ю","Я");
      
    $up_lat=array("A","B","V","G","D","E","Yo","J","Z","I","I","K","L","M","N","O","P","R","S","T","U","F","H","C","Ch","Sh","Sch","","Y","","E","Yu","Ya");
      
    $lo_rus=array("а","б","в","г","д","е","ё","ж","з","и","й","к","л","м","н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","ь","ы","ъ","э","ю","я");
      
    $lo_lat=array("a","b","v","g","d","e","yo","j","z","i","i","k","l","m","n","o","p","r","s","t","u","f","h","c","ch","sh","sch","","y","","e","yu","ya");
      
    $text=str_replace($up_rus,$up_lat,$text);
      
    $text=str_replace($lo_rus,$lo_lat,$text);
      return 
    $text;
    }

    function &
    build_date_field($field,$time) {
        
    $tmp "<input type=text name=".$field."_day size=2 maxlength=2 value=\"".date("d",$time)."\">.";
        
    $tmp .= "<input type=text name=".$field."_mon size=2 maxlength=2 value=\"".date("n",$time)."\">.";
        
    $tmp .= "<input type=text name=".$field."_year size=4 maxlength=4 value=\"".date("Y",$time)."\">";
        return 
    $tmp;
    }

    function &
    get_date_field($field) {
        
    $tmp mktime(0,0,0,getvar($field."_mon"),getvar($field."_day"),getvar($field."_year"));
        return 
    $tmp;
    }

    function &
    iptonum($ip) {
        
    $ipdata=explode(".",$ip);
        
    $num=0;
        for(
    $i=0;$i<4;$i++) $num=$num 256+floatval($ipdata[$i]);
        return 
    $num;
    }

    function &
    numtoip($num) {
        
    $str=floor($num/(256*256*256)).".";
        
    $num = ($num/(256*256*256)-floor($num/(256*256*256)))*256*256*256;
        
    $str.=floor($num/(256*256)).".";
        
    $num $num % (256*256);
        
    $str.=floor($num /256).".";
        
    $num $num % (256);
        
    $str.=$num;
        return 
    $str;
    }

    function 
    textarea($text) {
        
    $text=str_replace("<","&lt;",$text);
        
    $text=str_replace(">","&gt;",$text);
        return 
    $text;
    }

    function 
    strips(&$el) { 
      if (
    is_array($el)) foreach($el as $k=>$vstrips($el[$k]); 
      else 
    $el stripslashes($el); 
    Еще хреновина какая-то вылазит: http://intboard.ru/index.php?o=users&desc=desc&m=profile&a=listusers
     
    _________________________
    #2 censored!, 25 Mar 2006
    Last edited: 25 Mar 2006
  3. ~Fenix~

    ~Fenix~ Banned

    Joined:
    26 Jul 2005
    Messages:
    190
    Likes Received:
    50
    Reputations:
    6
    Ну да, я согласен что денег они зажлобили, но ради интереса, испытать свои силы, ведь это новый форум и про его уязвимости никто незнает (хотя кто там знает)...
     
  4. Error404

    Error404 New Member

    Joined:
    4 Jan 2006
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
Loading...
Similar Threads - Hack конкурс
  1. Suicide
    Replies:
    19
    Views:
    4,101