当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2013-018116

漏洞标题:PHP safe_mode等安全配置绕过

相关厂商:PHP

漏洞作者: GaRY

提交时间:2013-01-30 16:00

修复时间:2013-02-04 16:08

公开时间:2013-02-04 16:08

漏洞类型:非授权访问/权限绕过

危害等级:中

自评Rank:10

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-01-30: 细节已通知厂商并且等待厂商处理中
2013-02-04: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

在某些常见环境下的PHP执行环境,可以绕过其php.ini中设置的安全相关配置执行命令或者做其他操作

详细说明:

在PHP-FPM环境下的fastcgi运行的PHP中,因为PHP-FPM无法知晓我们的fastcgi请求来源于哪儿,因此我可以模仿fcgi协议向PHP-FPM发起伪造的请求。
而且PHP-FPM自从5.3.3开始,允许利用fcgi的参数PHP_VALUE, PHP_ADMIN_VALUE对php.ini的内容进行设置,因此可以利用此去覆盖原有php的安全设置。
但是因为disable_functions/classes的工作原理和其他配置有区别,通过这种方式我们无法覆盖这两个的配置,因此无法绕过disable_functions/classes。

漏洞证明:

利用结果如下:

fcgi.jpg

修复方案:

实际上这个还真不太好修复,可以暂时去除PHP_VALUE的支持,但是这只是一个临时方案,看PHP官方如何处理吧。
毕竟他无法解决“PHP-FPM无法知晓我们的fastcgi请求来源于哪儿”的问题。这又是一个架构上的问题了。

版权声明:转载请注明来源 GaRY@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2013-02-04 16:08

厂商回复:

最新状态:

2013-02-04:QUOTE: "fat@php.net:Even if I don't understand why a person of sound mind would expose FPM to the internet (don't tell me it's because of the cloud, if that's the case, stop using clouds: it's not secure !), there's some case where this could be a security risk, I agree.How to fix this:1- add an option to php-fpm to disable the PHP_VALUE and PHP_ADMIN_VALUE fastcgi headers (default to disable).2- see if we can find a way of authenticate the client (the legitimate webserver) (is there a way from a php script to see the content of the fastcgi request headers ?, if not, the legitimate webserver can sent a password in the fastcgi headers to authenticate itself to FPM)3- both (1 & 2)"


漏洞评价:

评论

  1. 2013-01-30 16:04 | VIP ( 普通白帽子 | Rank:759 漏洞数:100 )

    发了两个啊 @xsser

  2. 2013-01-30 16:26 | 小囧 ( 普通白帽子 | Rank:396 漏洞数:62 | 在通往牛B的路上一路狂奔)

    这么说来 那 sae bae 这些都不安全了哟?

  3. 2013-01-30 16:52 | 梧桐雨 认证白帽子 ( 核心白帽子 | Rank:1576 漏洞数:184 | 关注技术与网络安全)

    关注

  4. 2013-01-30 16:55 | Xhm1n9 ( 实习白帽子 | Rank:57 漏洞数:13 | bug)

    用.htaccess么?

  5. 2013-01-30 16:57 | /fd ( 路人 | Rank:8 漏洞数:1 )

    果斷关注

  6. 2013-01-30 16:58 | 蓝风 ( 普通白帽子 | Rank:125 漏洞数:25 | 崬汸慾哓 嗼檤焄垳皁 沓猵圊屾亾沬荖 颩憬...)

    求忽略

  7. 2013-01-30 17:01 | Z-0ne 认证白帽子 ( 普通白帽子 | Rank:559 漏洞数:38 | 目前专注于工控安全基础研究,工业数据采集...)

    这个得mark

  8. 2013-01-30 17:22 | txcbg ( 普通白帽子 | Rank:391 漏洞数:53 | 说点什么呢?)

    关注

  9. 2013-01-30 20:24 | Jesus ( 实习白帽子 | Rank:60 漏洞数:18 | 天地不仁,以万物为刍狗!)

    @xsser 爷,没人来确认的,放出来吧。。。

  10. 2013-01-30 23:37 | 无敌L.t.H ( 路人 | Rank:21 漏洞数:4 | ‮……肉肉捉活,亭长放解)

    open_basedir safe_mode都被玩坏多少次了。

  11. 2013-02-02 11:01 | Shell ( 路人 | Rank:14 漏洞数:4 | shell)

    坐等公开

  12. 2013-02-04 16:46 | VIP ( 普通白帽子 | Rank:759 漏洞数:100 )

    厂商居然来了

  13. 2013-02-04 17:12 | 梧桐雨 认证白帽子 ( 核心白帽子 | Rank:1576 漏洞数:184 | 关注技术与网络安全)

    厂商的话好霸气:引用:“fat@php.net:即使我不明白为什么一个心智健全的人会暴露FPM的互联网(别告诉我那是因为云,如果是这样的话,停止使用云:它是不安全的!)有些情况下,这可能是一个安全风险,我同意。如何解决这个问题:1 -增加一个选项,PHP程序禁用php_value和php_admin_value FastCGI头(默认禁用)。2看是否能找到一种方式,客户端进行身份验证(合法的网络服务器)(有从一个PHP脚本来看到FastCGI请求标头的内容吗?,如果不是,合法的网络服务器可以发送密码在FastCGI标题以FPM认证本身)3 -(1 - 2)”

  14. 2013-02-04 17:35 | 云中鹰 ( 实习白帽子 | Rank:65 漏洞数:10 | 云中鹰)

    关注~~~

  15. 2013-02-04 18:28 | GaRY ( 实习白帽子 | Rank:39 漏洞数:3 | 真悲剧平男君)

    顺带提一句,这个对disable_functions没有绕过作用。之前更新的漏洞貌似没用,还是回复里提一下

  16. 2013-02-04 18:33 | GaRY ( 实习白帽子 | Rank:39 漏洞数:3 | 真悲剧平男君)

    原因么,我回头zone上写个帖子说明以下

  17. 2013-02-04 22:06 | GaRY ( 实习白帽子 | Rank:39 漏洞数:3 | 真悲剧平男君)

    发了个帖子解释这个漏洞相关信息:http://zone.wooyun.org/content/2605

  18. 2013-02-05 12:00 | leehenwu ( 普通白帽子 | Rank:194 漏洞数:24 | 撸·啊·撸)

    exp 可以参考fastcgi remote code execution exp 修改一下吧。。

  19. 2013-02-09 23:44 | 假装纯情 ( 路人 | Rank:6 漏洞数:1 | 不折腾会死星人~)

    这个要mark

  20. 2013-12-20 23:46 | luwikes ( 普通白帽子 | Rank:512 漏洞数:77 | 潜心学习~~~)

    mark