在文件ask/query.php中: case 'edit_answer': //第39行 if($dosubmit) { if(strlen($answertext) > 10000) showmessage('回答字数不能超过10000个字符'); $posts['message'] = $M['use_editor'] ? $answertext : strip_tags($answertext); $answer->edit($pid, $posts, $_userid); $answer->edit在文件ask\include\answer.class.php中: function edit($id, $posts, $userid) //第109行 { $id = intval($id); $userid = intval($userid); if(!$id || !is_array($posts)) return false; if($userid) $sql = " AND userid=$userid"; return $this->db->update($this->table_posts, $posts, "pid=$id $sql"); } db->update在文件include/ db_mysql.class.php中,代码: function update($tablename, $array, $where = '') //第83行 { if($where) { $sql = ''; foreach($array as $k=>$v) { $sql .= ", `$k`='$v'"; } $sql = substr($sql, 1); $sql = "UPDATE `$tablename` SET $sql WHERE $where"; 数组变量$posts没有初始化,导致注入漏洞的产生。 Phpcms 2008 SEBUG 临时解决办法 初始化数组变量$posts 厂商补丁: PHPCMS ---------- 目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:...
在文件ask/query.php中: case 'edit_answer': //第39行 if($dosubmit) { if(strlen($answertext) > 10000) showmessage('回答字数不能超过10000个字符'); $posts['message'] = $M['use_editor'] ? $answertext : strip_tags($answertext); $answer->edit($pid, $posts, $_userid); $answer->edit在文件ask\include\answer.class.php中: function edit($id, $posts, $userid) //第109行 { $id = intval($id); $userid = intval($userid); if(!$id || !is_array($posts)) return false; if($userid) $sql = " AND userid=$userid"; return $this->db->update($this->table_posts, $posts, "pid=$id $sql"); } db->update在文件include/ db_mysql.class.php中,代码: function update($tablename, $array, $where = '') //第83行 { if($where) { $sql = ''; foreach($array as $k=>$v) { $sql .= ", `$k`='$v'"; } $sql = substr($sql, 1); $sql = "UPDATE `$tablename` SET $sql WHERE $where"; 数组变量$posts没有初始化,导致注入漏洞的产生。 Phpcms 2008 SEBUG 临时解决办法 初始化数组变量$posts 厂商补丁: PHPCMS ---------- 目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载: http://www.phpcms.cn