php mail函数可以用来绕过safe_mode限制发布时间:2001-07-19 更新时间:2001-07-19 严重程度:高 威胁程度:普通用户访问权限 错误类型:输入验证错误 利用方式:服务器模式 受影响系统 php4.0.6详细描述 php mail()函数没有很好的检查特殊SHELL命令字符,甚至在PHP 运行在safe_mode下也能绕过限制执行命令,问题存在于下面代码 中: >extra_cmd = (*argv[4])->value.str.val; >strcat (sendmail_cmd, extra_cmd); >sendmail = popen(sendmail_cmd, "w"); 测试代码 mail("toto@toto.com", "test", "test", "test", "; shell_cmd"); 解决方案 在mail()函数中(ext/standard/mail.c152行,if (extra_cmd!=NULL( {) 前一行)增加如下一行: extra_cmd=NULL; 在重新编译PHP。 相关信息 Laurent Sintes (sintes@nfrance.com) |