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 相关文章推荐
php之对抗Web扫描器的脚本技巧
Oct 01 PHP
Discuz 模板语句分析及知识技巧
Aug 21 PHP
基于OpenCV的PHP图像人脸识别技术
Oct 11 PHP
PHP中static关键字原理的学习研究分析
Jul 18 PHP
php获取字段名示例分享
Mar 03 PHP
php技术实现加载字体并保存成图片
Jul 27 PHP
php防止网站被攻击的应急代码
Oct 21 PHP
PHP的Yii框架中使用数据库的配置和SQL操作实例教程
Mar 17 PHP
php实现的网页版剪刀石头布游戏示例
Nov 25 PHP
Zend Framework校验器Zend_Validate用法详解
Dec 09 PHP
thinkPHP5.0框架URL访问方法详解
Mar 18 PHP
PHP项目多语言配置平台实现过程解析
May 18 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
人族 TERRAN 概述
2020/03/14 星际争霸
ZF框架实现发送邮件的方法
2015/12/03 PHP
php图像验证码生成代码
2017/06/08 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
2018/04/09 PHP
PHP命名空间与自动加载机制的基础介绍
2019/08/25 PHP
php装饰者模式简单应用案例分析
2019/10/23 PHP
5款Javascript颜色选择器
2009/10/25 Javascript
JavaScript中的集合及效率
2010/01/08 Javascript
jquery 检测元素是否存在的实例代码
2013/11/19 Javascript
Jquery 改变radio/checkbox选中状态,获取选中的值(示例代码)
2013/12/12 Javascript
js事件绑定快捷键以ctrl+k为例
2014/09/30 Javascript
EasyUI,点击开启编辑框,并且编辑框获得焦点的方法
2015/03/01 Javascript
js判断手机浏览器操作系统和微信浏览器的方法
2016/04/30 Javascript
JavaScript 基础函数_深入剖析变量和作用域
2016/05/18 Javascript
从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别
2016/06/12 Javascript
js字符串操作总结(必看篇)
2016/11/22 Javascript
PHP实现记录代码运行时间封装类实例教程
2017/05/08 Javascript
jquery.uploadView 实现图片预览上传功能
2017/08/10 jQuery
如何去除vue项目中的#及其ie9兼容性
2018/01/11 Javascript
element-ui table span-method(行合并)的实现代码
2018/12/20 Javascript
python小技巧之批量抓取美女图片
2014/06/06 Python
Python脚本实现虾米网签到功能
2016/04/12 Python
django celery redis使用具体实践
2019/04/08 Python
python中对二维列表中一维列表的调用方法
2020/06/07 Python
Manjaro、pip、conda更换国内源的方法
2020/11/17 Python
使用CSS3 制作一个material-design 风格登录界面实例
2016/12/12 HTML / CSS
设计师珠宝:Ylang 23
2018/05/11 全球购物
Reformation官网:美国女装品牌
2018/09/14 全球购物
越南综合购物网站:Lazada越南
2019/06/10 全球购物
优秀企业获奖感言
2014/02/01 职场文书
市场营销专业应届生自荐信
2014/06/19 职场文书
道路施工安全责任书
2014/07/24 职场文书
预备党员转正思想汇报
2014/09/26 职场文书
乡党委干部党的群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
公司与个人合作协议书
2016/03/19 职场文书
HTML中table表格拆分合并(colspan、rowspan)
2021/04/07 HTML / CSS