PHP默认安装产生系统漏洞


Posted in PHP onOctober 09, 2006

这一个漏洞在 packetstorm 被发表,我把它翻成中文,加上自己的一些注解,希望对在 NT 上执行
PHP 的朋友有一些帮助。

当你下载 PHP 後,在它内含的安装文件中帮助了 PHP 在 NT + Apache Web Server 的安装方式
,其中的安装帮助会要你将底下这几行设置加到 apache 的 httpd.conf 设置文件中,而这个安装文
件将导引你将你的系统门户大开。

这几行命令为:

ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php.exe"

我们进一步的解释这三行设置,这些设置命令要求 Apache 将 /php/ 这个虚拟目录直接映射到 c:/php/
目录下,所以当你使用: 

"http://www.example.com/php/"

链接网页的时候,实际上 Web Server 是直接存取到 c:/php/ 这个目录,这时候你会看到 "Access Denied"
的错误信息,但是当你改用:

"http://www.example.com/php/php.exe"

命令来连接的时候,你会发现服务器回送了 "No input file specified." 这行字,这行字是由 php.exe
所进行的回送,表示你刚刚在这台 server 上执行了 php 执行文件。

如果你的服务器是使用 php 里所教你的安装方法来作设置的,这时候你可能有了以下的危机。

[** 漏洞 1 **]

我们可以利用这个漏洞来读取这台服务器上的任何一个文件,甚至可以跨磁盘读取,只要使用下列方式连接:

"http://www.example.com/php/php.exe?c:\winnt\repair\sam"

PHP 会将文件 "c:\winnt\repair\sam" 丢给浏览器,并把它显示出来,而这个文件正是 Windows NT 
保存密码的所在,

"http://www.example.com/php/php.exe?d:\winnt\repair\sam"

PHP 会把在 D: 磁盘中相同的文件传出。
而有了这个 SAM 文件,黑客可以用以破解出你在这台机器上所设置的密码。

[** 漏洞 2 **]

如果你指定了在 php 目录下的文件,你的 Web 服务器会尝试执行这个文件,并且传会错误信息,所以当你
使用了:

"http://www.example.com/php/php4ts.dll"

这个错误会导致 Web Server 传回 "couldn<|>t create child process: 22693: C:/php/php4ts.dll"
这个信息,因而漏了你安装 PHP 的真实目录

PS. 经过我的测试,第二个漏洞在 PHP V4.11 上执行时将回传回 "Internal Server Error" 的错误,
并不回漏目录结构,但是在 PHP V4.11 中,第一个漏洞仍然有效。

简易解决法∶使用较长且不易判定之虚拟目录来放置 PHP 执行文件,例如∶

ScriptAlias /php-mY-sCrIpT/ "c:/php411/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php-mY-sCrIpT/php.exe"

这样入侵者将不易得知 PHP 的存放目录,而降低了被入侵的机会。
在更改过 httpd.conf 後记得要将 Apache Service 重新启动∶

NET STOP APACHE
NET START APACHE

[END]

PHP 相关文章推荐
第十一节 重载 [11]
Oct 09 PHP
解析thinkphp import 文件内容变量失效的问题
Jun 20 PHP
PHP生成随机密码类分享
Jun 25 PHP
ThinkPHP行为扩展Behavior应用实例详解
Jul 22 PHP
php实现的九九乘法口诀表简洁版
Jul 28 PHP
PHP中exec函数和shell_exec函数的区别
Aug 20 PHP
php判断文件上传类型及过滤不安全数据的方法
Dec 17 PHP
PHP中实现crontab代码分享
Mar 26 PHP
PHP 7安装使用体验之性能大提升,兼容性强,扩展支持不够(升级PHP要谨慎)
Jul 27 PHP
ThinkPHP5.0 图片上传生成缩略图实例代码说明
Jun 20 PHP
PHP SESSION机制的理解与实例
Mar 22 PHP
php实现映射操作实例详解
Oct 02 PHP
把PHP安装为Apache DSO
Oct 09 #PHP
PHP4中实现动态代理
Oct 09 #PHP
phpmyadmin操作流程
Oct 09 #PHP
一个用于MySQL的PHP XML类
Oct 09 #PHP
ASP知识讲座四
Oct 09 #PHP
php.ini中文版
Oct 09 #PHP
用Apache反向代理设置对外的WWW和文件服务器
Oct 09 #PHP
You might like
PHP中对数据库操作的封装
2006/10/09 PHP
php下尝试使用GraphicsMagick的缩略图功能
2011/01/01 PHP
我的php学习笔记(毕业设计)
2012/02/21 PHP
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
2014/06/05 PHP
php中json_encode UTF-8中文乱码的更好解决方法
2014/09/28 PHP
WordPress中转义HTML与过滤链接的相关PHP函数使用解析
2015/12/22 PHP
基于PHP后台的Android新闻浏览客户端
2016/05/23 PHP
javascript在一段文字中的光标处插入其他文字
2007/08/26 Javascript
JavaScript DOM学习第六章 表单实例
2010/02/19 Javascript
A标签触发onclick事件而不跳转的多种解决方法
2013/06/27 Javascript
jQuery动画效果-fadeIn fadeOut淡入浅出示例代码
2013/08/28 Javascript
javascript为下拉列表动态添加数据项
2014/05/23 Javascript
JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
2015/12/13 Javascript
基于JavaScript实现一定时间后去执行一个函数
2015/12/14 Javascript
JS简单实现浮动窗口效果示例
2016/09/07 Javascript
原生JS实现图片轮播切换效果
2016/12/15 Javascript
js 原型对象和原型链理解
2017/02/09 Javascript
详解vue2路由vue-router配置(懒加载)
2017/04/08 Javascript
JS中Swiper的使用和轮播图效果
2017/08/11 Javascript
vue params、query传参使用详解
2017/09/12 Javascript
在mpvue框架中使用Vant WeappUI组件库的注意事项【推进】
2019/06/09 Javascript
[01:29:46]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第二局
2016/02/27 DOTA
python查看矩阵的行列号以及维数方式
2020/05/22 Python
Pyinstaller 打包发布经验总结
2020/06/02 Python
Keras中的多分类损失函数用法categorical_crossentropy
2020/06/11 Python
找到不普通的东西:Bonanza
2016/10/20 全球购物
StubHub新加坡:购买和出售全球活动门票
2017/03/10 全球购物
医院护士专业个人的求职信
2013/12/09 职场文书
实习生的自我评价
2014/01/08 职场文书
社区消防工作实施方案
2014/03/21 职场文书
道德之星事迹材料
2014/05/03 职场文书
群众路线教育实践活动批评与自我批评
2014/09/15 职场文书
中国合伙人观后感
2015/06/02 职场文书
春晚观后感
2015/06/11 职场文书
Java数据结构之链表相关知识总结
2021/06/18 Java/Android
使用JS前端技术实现静态图片局部流动效果
2022/08/05 Javascript