PHP默认安装产生系统漏洞

 更新时间:2016年11月25日 15:20  点击:1675
这一个漏洞在 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:winntepairsam"
PHP 会将文件 "c:winntepairsam" 丢给浏览器,并把它显示出来,而这个文件正是 Windows NT 
保存密码的所在,
"http://www.example.com/php/php.exe?d:winntepairsam"
PHP 会把在 D: 磁盘中相同的文件传出。
而有了这个 SAM 文件,黑客可以用以破解出你在这台机器上所设置的密码。
[** 漏洞 2 **]
如果你指定了在 php 目录下的文件,你的 Web 服务器会尝试执行这个文件,并且传会错误信息,所以当你
可以用做签名,论坛头像
PHP代码:--------------------------------------------------------------------------------
<?php
/****************************************************
残风制作ip签名探针---stormor@163.com
如果有显示不正确的地方请发E-mail给我,以便修改!
*****************************************************/
Header("Content-type: image/png");
if(getenv("HTTP_CLIENT_IP")) {
$ip = getenv("HTTP_CLIENT_IP");
$ip_agent = getenv("REMOTE_ADDR");
} elseif(getenv("HTTP_X_FORWARDED_FOR")) {
$ip_real = getenv("HTTP_X_FORWARDED_FOR");
$ip_agent = getenv("REMOTE_ADDR");
} else {
$ip_real = getenv("REMOTE_ADDR");
$ip_agent = "";
}
if(!$ip_agent){
$wenzi="IP:";
$ip_count=strlen($ip_real);
$left=22;
$width=$ip_count*6+$left+5;
$height=14;
$picture=Imagecreate($width,$height);
$bgcolor=ImageColorAllocate($picture,225,250,225);
$bordercolor=ImageColorAllocate($picture,0,0,0);
$fontcolor=ImageColorAllocate($picture,0,0,0);
Imageline($picture,0,0,$width-1,0,$bordercolor);
Imageline($picture,0,0,0,$height-1,$bordercolor);
Imageline($picture,$width-1,$height-1,$width-1,0,$bordercolor);
Imageline($picture,$width-1,$height-1,0,$height-1,$bordercolor);
Imagestring($picture,2,2,0,$wenzi,$fontcolor);
Imagestring($picture,2,$left+2,0,$ip_real,$fontcolor);
Imagepng($picture);
ImageDestroy($picture);
}else{
$wenzi1="IP1:";
$wenzi2="IP2:";
$ip_count1=strlen($ip_real);
$ip_count2=strlen($ip_agent);
$left=26;
if($ip_count1>=$ip_count2){$width=$ip_count1*6+$left+5;}else{$width=$ip_count2*6+$left+5;}
$height=29;
$middle=$height/2+1;
$picture=Imagecreate($width,$height);
$bgcolor=ImageColorAllocate($picture,225,250,225);
$bordercolor=ImageColorAllocate($picture,0,0,0);
简介:一台机器用专线接入Internet作为防火墙,在内部网段上有一台WWW服务器 
(Redhat 6.1,Apache 1.3.9)希望这台机器能对外提供WWW服务器和基于apache 
的文件服务。供外部世界公共访问WWW服务器,或者外地分公司下载需要的文件。
优点: 内部的WWW服务器和文件服务完全与外部世界隔开,不直接连接到外部,通过 
防火墙上运行的Apache服务提供对内部的代理访问,增强了安全性,同时在 
防火墙上运行的Apache服务运用基于名字的虚拟主机技术,使得防火墙上的 
主页不会被访问到。符合了作为防火墙要求运行服务越少越安全的准则。
实现方法:在内部网段上的Apache服务器(192.168.11.2)存放的是公司主页,供内部 
和外部用户公共访问,并设置/home/ftp/pub目录为文件存放区域,用 
http://download.yourdomain.com/pub/来访问。
在防火墙上设置apache反向代理技术,由防火墙代理对内部网段上的访问。
步骤: 
一. 内部网段上的Apache服务器设置 
apache采用默认配置。主目录为/home/httpd/html,主机域名为 sun.yourdomain.com, 
且别名www.yourdomain.com, 并且设置srm.conf加一行别名定义如下: 
Alias /pub /home/ftp/pub/ 
且更改默认应用程序类型定义如下: 
DefaultType application/octet-stream 
最后在/etc/httpd/conf/access.conf中增加一项定义 
Options Indexes 
AllowOverride AuthConfig 
order allow,deny 
allow from all 
注:Options Indexes允许在找不到index.html文件的情况下允许列出目录/文件列表。
AllowOverride AuthConfig允许做基本的用户名和口令验证。
这样的话,你需要在/home/ftp/pub目录下放入.htaccess,内容如下: 
------- 
[root@shopu pub]# more .htaccess 
AuthName Branch Office Public Software Download Area 
AuthType Basic 
AuthUserFile /etc/.usrpasswd 
require valid-user 
------ 
然后用#htpasswd -c /etc/.usrpasswd user1 
本文属于被风吹倒的男子原创,拥有版权.来自www.iphp.org的论坛,网络转载请保留本信息.非网络转载请联系本人.个人站长自己写东西不容易,也为能够给我继续写下去的勇气和动力,请在转载时候不要删除本说明.本文是第一篇,我会找时间陆续把以后的东西写出来的。
很多朋友对于php的认识,长期停留在修改别人的程序上,因为可以修改所以懒惰于进步.或者是买来书看的时候,发现php的函数超级无敌多,看到函数库被吓晕了.等等.我自己是属于后者.本文是专门对于针对懒的花时间学习php,但是又想自己做点东西的懒人。
         到后来,我参加了学校的一个辅修班,老师上课讲,期末考试要考,于是乎,被逼着,居然能够自己写简单的代码了.
            因此,本文就是面向可以修改程序程序中的html,但是无法对程序构造进行修改的朋友,有基本的程序基础,就是:能明白if和else.够了,或者有同样基础的人均适合.高手可以走开.我到现在为止,使用常用的函数仍然需要查手册,仍然再写垃圾代码.
             好了,废话少说,我们进入第一阶段吧
            
        能够修改程序的朋友,在同学眼里都是网页高手级别的人物了.我如果开始从什么是变量说起,难免耽误您的时间.我自己又是搞文本收集出身的,所以我们就可以先从详细剖析一个程序的一部分开始.程序很简单,只有几个简单的判断,我会把程序的说明写的无敌详细.
    Quote:
如果您在哪里看不明白,请跟贴告诉我,我在第一时间修改,或者email我,我的邮件地址是rainboy#tom.com,请不要发垃圾邮件给我,我现在已经被垃圾邮件搞的很烦了
下面我们从剖析一个最简单的计数器开始
计数器的功能是:刷新一次页面,数字增加一.
程序如下
    Code:
[Copy to clipboard]    
<?
$datafile="data.txt";
$fp1=fopen($datafile,"r");
$num=fgets($fp1,10);
$num=trim($num);
fclose($fp1);
echo "您是第".$num."位客人";
$fp2=fopen($datafile,"w");
$num=$num+1;
fputs($fp2,"$num");
fclose($fp2);
?>
在经过长达8个月的开发和测试以后,PHP 4.3.0正式发布了。就范围,时间,成就方面而言,这是最全面的PHP发行版,而且,作为综合用途的脚本语言舞台的一个重要的竞争者,它将更进一步的提高了PHP的地位。
命令行界面
这个版本最终完成了独立的命令行界面(CLI),这可以(配合PHP-GTK一起)用于开发内核和桌面应用程序。CLI是内建部分,但是在配置过程中,只有当CGI版本使用--disable-cgi开关时候,才自动安装;或者使用make install-cli 。在Windows系统中,可以在cli目录找到CLI。
与其他服务器API相比较,CLI有许多的不同。请在“PHP手册:命令行中使用PHP”一章中找到更详细的内容。
Streams流
streams流API是一个非常重要的未披露的特征。在PHP内核和扩展中,引进了统一的方法来处理文件、管道、sockets和其他I/O资源。
这意味着对用户来说,任何使用streams流的I/O函数(和几乎所有这些函数)可以访问内置的协议,例如HTTP/HTTPS和FTP/FTPS,也可以通过PHP脚本登记使用自定义协议。请参考“已支持的协议/包列表”以获取更详细的内容。
新安装系统
安装系统在其他重复的地方,使用了一个全局的Makefile代替了缓慢的递归,并且降低了固定的相关性的综合程度。aclocal工具只需要automake。整个安装过程更轻便,消耗更少资源。
改进
PHP 4.3.x有许多的改进和增强的地方:
捆绑发行GD库而且推荐一直使用捆绑的版本的GD库
vpopmail和cybermut扩充移到PECL
删除几个不常用的扩充(aspell, ccvs, cybercash, icap)和SAPIs(fastcgi,fhttpd)
提高了各种字符串处理函数的速度
删除Apache2过滤器,还在实验中(由于许多扩充基于外部的库是不安全的,在prefork中使用PHP和工人模式)
修正各种安全隐患(imap, mysql, mcrypt, file upload, gd等等)
在其他应用程序植入新的SAPI到PHP中(实验性)
大量的测试套件
在dba, gd, pcntl, sybase和xslt扩展重要的改进
新增的debug_backtrace()有助于调试
现在错误信息可以链接到描述错误或者函数问题的网页
Zend引擎修正小错误和做了小的性能的提高
大量的其他修正,更新和新功能等等

[!--infotagslink--]

相关文章

  • PHP7快速编译安装的步骤

    编译安装非常的简单了我们现在的php版本已经到了php7了,下文小编来为各位介绍一篇关于PHP7快速编译安装的步骤,希望文章能够帮助到各位。 一、安装必要一些依赖 yum...2016-11-25
  • Rstudio中安装package出现的问题及解决

    这篇文章主要介绍了Rstudio中安装package出现的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
  • php中Multipart/form-data漏洞补丁修复

    Multipart/form-data是文件上传或数据提交时会用到了,在php中Multipart/form-data是有安全bug的,下面我们来看看如何修复Multipart/form-data的bug吧. 今天在乌云...2016-11-25
  • PHP编译安装后PHP-FPM使用笔记

    PHP-FPM我们相信各位用高版本的php经常使用到了,下面整理了一些关于PHP-FPM的笔记,有兴趣的可进来看看。 今天赶上了123System OPenVZ VPS全场半价的机会,购入了一...2016-11-25
  • BootStrap栅格系统、表单样式与按钮样式源码解析

    这篇文章主要为大家详细解析了BootStrap栅格系统、表单样式与按钮样式源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-01-23
  • Linux安装Pytorch1.8GPU(CUDA11.1)的实现

    这篇文章主要介绍了Linux安装Pytorch1.8GPU(CUDA11.1)的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-25
  • python实现学生通讯录管理系统

    这篇文章主要为大家详细介绍了python实现学生通讯录管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-25
  • vscode安装git及项目开发过程

    这篇文章主要介绍了vscode安装git及项目开发过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-19
  • 安装和使用percona-toolkit来辅助操作MySQL的基本教程

    一、percona-toolkit简介 percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql和系统任务,这些任务包括: 检查master和slave数据的一致性 有效地对记录进行归档 查找重复的索...2015-11-24
  • Visual Studio 2015下载和安装图文教程

    这篇文章主要为大家详细介绍了Visual Studio 2015下载和安装图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-22
  • Centos中彻底删除Mysql(rpm、yum安装的情况)

    我用的centos6,mysql让我整出了各种问题,我想重装一个全新的mysql,yum remove mysql-server mysql之后再install并不能得到一个干净的mysql,原来的/etc/my.cnf依然没变,datadir里面的数据已没有任何变化,手动删除/etc/my.cn...2015-03-15
  • Node调试工具JSHint的安装及配置教程

    现在我们介绍一种在Node下检查简单错误的JS代码验证工具JSHint。  JSHint的具体介绍参考http://www.jshint.com/about/,说直白点儿,JSHint就是一个检查JS代码规范与否的工具,它可以用来检查任何(包括server端和client端...2014-05-31
  • linux服务器快速卸载安装node环境(简单上手)

    这篇文章主要介绍了linux服务器快速卸载安装node环境(简单上手),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-22
  • 在PyCharm中安装PaddlePaddle的方法

    这篇文章主要介绍了在PyCharm中安装PaddlePaddle的方法,本文给大家介绍的非常想详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-05
  • Ubuntu20.04安装cuda10.1的步骤(图文教程)

    这篇文章主要介绍了Ubuntu20.04安装cuda10.1的步骤(图文教程),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-07-30
  • uni-app从安装到卸载的入门教程

    这篇文章主要介绍了uni-app从安装到卸载的入门教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-05-15
  • 详解为什么现代系统需要一个新的编程模型

    如今高要求的分布式系统的建造者遇到了不能完全由传统的面向对象编程(OOP)模型解决的挑战,但这可以从Actor模型中获益。...2021-05-20
  • Postman安装与使用详细教程 附postman离线安装包

    这篇文章主要介绍了Postman安装与使用详细教程 附postman离线安装包,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-05
  • vs2019安装和使用详细图文教程

    这篇文章主要介绍了vs2019安装和使用详细图文教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • 护卫神 主机管理系统使用说明(MSSQL管理)

    护卫神·主机管理系统该版本支持在Windows Server 200320082012,含32位和64位,直接开设配置WEB站、FTP站,以及SQL Server和MySQL,是您开设和管理虚拟主机的绝好帮手。但是对于新用户可能在使用上有一些困难,因此请仔细阅读如下说明文档...2016-01-27