Phpwind对于某些用户提交的参数过滤不严,导致可能的一个远程代码执行,普通前台恶意用户可以取得使用phpwind站点的权限
详细说明:
./phpwind7.2/thread.php中
InitGP(array('page','type','search','orderway','asc','special'));
…… //此处省略X行
$db_maxpage && $page > $db_maxpage && $page = $db_maxpage;
(int)$page<1 && $page = 1;
…… //此处也省略X行
$numofpage < 1 && $numofpage = 1;
if ($page > $numofpage) {
$page = $numofpage;
}
最终Page这个变量进入了两次判断,都只是判断了大小,而后走入
if ($db_fcachenum && $page < $db_fcachenum && empty($urladd)) {
$fcachetime = pwFilemtime(D_P."data/bbscache/fcache_{$fid}_{$page}.php");
$lastpost = explode("\t",$foruminfo['lastpost']);
if (!file_exists(D_P."data/bbscache/fcache_{$fid}_{$page}.php") || $lastpost[2]>$fcachetime && $timestamp-$fcachetime>$db_fcachetime) {
$fcache = 1;
} else {
$fcache = 2;
}
}
当开启了版块缓存的话,且D_P.data/bbscache/fcache_{$fid}_{$page}.php的创建时间在缓存有效期间内的话
……
include_once(D_P."data/bbscache/fcache_{$fid}_{$page}.php");
则毫不留情的包含了
良好的设计需要良好的实现,良好的实现依赖于人员良好的执行,你说呢?
|