![]() |
|
安徽电信nod32升级服务器
服务器地址:http://eset.corbie.com.cn
本站重新开放注册,大家赶快下有用的资源....
nod32服务器升级即时信息统计系统地址:http://corbie.9966.org
客户端下载地址: http://www.corbie.com.cn/nod32.rar
服务器地址:http://eset.corbie.com.cn
本站重新开放注册,大家赶快下有用的资源....
nod32服务器升级即时信息统计系统地址:http://corbie.9966.org
客户端下载地址: http://www.corbie.com.cn/nod32.rar
Windows 2000 IIS Script Engine 异常
作者:Corbie 日期:2005-11-16 18:57
一、事件查看器 应用程序
提示如下信息:
错误: Script Engine 异常. 一个 ScriptEngine 超出了预期'C0000005' 在'IActiveScript::SetScriptState()',来自'CActiveScriptEngine::ResetToUninitialized()' 。。
二,事件查看器 系统
依次出现以下提示信息:
1、服务器无法注册管理工具发现信息。管理工具可能无法看到此服务器。数据错误。
2、进程外应用程序 '/LM/W3SVC/39/Root' 意外地终止。
3、进程外应用程序 '/LM/W3SVC/6/Root' 意外地终止。
4、进程外应用程序 '/LM/W3SVC/4/Root' 意外地终止。
5、进程外应用程序 '/LM/W3SVC/36/Root' 意外地终止。
系统环境:WIN2000 SP4 SQLSERVER2000 IIS(asp+.net)
具体说明:dllhost.exe内存使用超高,达到一定限度后WEB服务挂机,cpu占用率达到100%。结束dllhost.exe或重启iis后web服务恢复正常,周期性的出现。
------------------------------
使 用 过 相 关 解 决 方 法:
----------------------------------------------------------------------------
1、从别的电脑上(同系统)拷贝Vbscript.dll,覆盖前请备份!
----------------------------------------------------------------------------
2、重装iis
----------------------------------------------------------------------------
3、更新ScriptEn.exe安装一下
http://www.microsoft.com/downloads/details.aspx?displaylan ... 17d943-7e4b-4622-86eb-95a22b832caa
----------------------------------------------------------------------------
4、更新“组件服务”,一下是具体操作(这个需要谨慎,最好在本地机器上操作熟练,或先生成服务安装包!)
a. 浏览至“组件服务”并删除下列程序包:注意:要删除这些程序包,必须首先打开程序包的属性,单击高级选项卡,然后单击以清除禁止删除复选框。
? IIS In-Process Applications
? IIS Out-of-Process Pooled Applications
? IIS Utilities
b. 打开命令提示窗口,然后使用以下命令切换目录:
cd %windir%system32inetsrv
c. 运行以下命令:
rundll32 wamreg.dll, CreateIISPackage
注意:必须准确键入“CreateIISPackage”;它区分大小写。
regsvr32 asptxn.dll
d. 关闭并重新打开“组件服务”。您应看到已经重新创建的所有这三个 IIS COM+ 应用程序。
e. 从命令行运行 IISRESET,并对先前未正确加载的任意 ASP 页进行测试。
提示如下信息:
错误: Script Engine 异常. 一个 ScriptEngine 超出了预期'C0000005' 在'IActiveScript::SetScriptState()',来自'CActiveScriptEngine::ResetToUninitialized()' 。。
二,事件查看器 系统
依次出现以下提示信息:
1、服务器无法注册管理工具发现信息。管理工具可能无法看到此服务器。数据错误。
2、进程外应用程序 '/LM/W3SVC/39/Root' 意外地终止。
3、进程外应用程序 '/LM/W3SVC/6/Root' 意外地终止。
4、进程外应用程序 '/LM/W3SVC/4/Root' 意外地终止。
5、进程外应用程序 '/LM/W3SVC/36/Root' 意外地终止。
系统环境:WIN2000 SP4 SQLSERVER2000 IIS(asp+.net)
具体说明:dllhost.exe内存使用超高,达到一定限度后WEB服务挂机,cpu占用率达到100%。结束dllhost.exe或重启iis后web服务恢复正常,周期性的出现。
------------------------------
使 用 过 相 关 解 决 方 法:
----------------------------------------------------------------------------
1、从别的电脑上(同系统)拷贝Vbscript.dll,覆盖前请备份!
----------------------------------------------------------------------------
2、重装iis
----------------------------------------------------------------------------
3、更新ScriptEn.exe安装一下
http://www.microsoft.com/downloads/details.aspx?displaylan ... 17d943-7e4b-4622-86eb-95a22b832caa
----------------------------------------------------------------------------
4、更新“组件服务”,一下是具体操作(这个需要谨慎,最好在本地机器上操作熟练,或先生成服务安装包!)
a. 浏览至“组件服务”并删除下列程序包:注意:要删除这些程序包,必须首先打开程序包的属性,单击高级选项卡,然后单击以清除禁止删除复选框。
? IIS In-Process Applications
? IIS Out-of-Process Pooled Applications
? IIS Utilities
b. 打开命令提示窗口,然后使用以下命令切换目录:
cd %windir%system32inetsrv
c. 运行以下命令:
rundll32 wamreg.dll, CreateIISPackage
注意:必须准确键入“CreateIISPackage”;它区分大小写。
regsvr32 asptxn.dll
d. 关闭并重新打开“组件服务”。您应看到已经重新创建的所有这三个 IIS COM+ 应用程序。
e. 从命令行运行 IISRESET,并对先前未正确加载的任意 ASP 页进行测试。
阿江的WINDOWS服务器安全设置
作者:Corbie 日期:2005-11-16 13:24
前言
其实,在服务器的安全设置方面,我虽然有一些经验,但是还谈不上有研究,所以我写这篇文章的时候心里很不踏实,总害怕说错了会误了别人的事。
本文更侧重于防止ASP漏洞攻击,所以服务器防黑等方面的讲解可能略嫌少了点。
基本的服务器安全设置
安装补丁
安装好操作系统之后,最好能在托管之前就完成补丁的安装,配置好网络后,如果是2000则确定安装上了SP4,如果是2003,则最好安装上SP1,然后点击开始→Windows update,安装所有的关键更新。
安装杀毒软件
虽然杀毒软件有时候不能解决问题,但是杀毒软件避免了很多问题。我一直在用诺顿2004,据说2005可以杀木马,不过我没试过。还有人用瑞星,瑞星是确定可以杀木马的。更多的人说卡巴司机好,不过我没用过。
不要指望杀毒软件杀掉所有的木马,因为ASP木马的特征是可以通过一定手段来避开杀毒软件的查杀。
设置端口保护和防火墙、删除默认共享
都是服务器防黑的措施,即使你的服务器上没有IIS,这些安全措施都最好做上。这是阿江的盲区,大概知道屏蔽端口用本地安全策略,不过这方面的东西网上攻略很多,大家可以擞出来看看,晚些时候我或者会复制一些到我的网站上。
权限设置
阿江感觉这是防止ASP漏洞攻击的关键所在,优秀的权限设置可以将危害减少在一个IIS站点甚至一个虚拟目录里。我这里讲一下原理和设置思路,聪明的朋友应该看完这个就能解决问题了。
权限设置的原理
WINDOWS用户,在WINNT系统中大多数时候把权限按用户(組)来划分。在【开始→程序→管理工具→计算机管理→本地用户和组】管理系统用户和用户组。
NTFS权限设置,请记住分区的时候把所有的硬盘都分为NTFS分区,然后我们可以确定每个分区对每个用户开放的权限。【文件(夹)上右键→属性→安全】在这里管理NTFS文件(夹)权限。
IIS匿名用户,每个IIS站点或者虚拟目录,都可以设置一个匿名访问用户(现在暂且把它叫"IIS匿名用户"),当用户访问你的网站的.ASP文件的时候,这个.ASP文件所具有的权限,就是这个"IIS匿名用户"所具有的权限。
权限设置的思路
要为每个独立的要保护的个体(比如一个网站或者一个虚拟目录)创建一个系统用户,让这个站点在系统中具有惟一的可以设置权限的身份。
在IIS的【站点属性或者虚拟目录属性→目录安全性→匿名访问和验证控制→编辑→匿名访问→编辑】填写刚刚创建的那个用户名。
设置所有的分区禁止这个用户访问,而刚才这个站点的主目录对应的那个文件夹设置允许这个用户访问(要去掉继承父权限,并且要加上超管组和SYSTEM组)。
这样设置了之后,这个站点里的ASP程序就只有当前这个文件夹的权限了,从探针上看,所有的硬盘都是红叉叉。
我的设置方法
我是先创建一个用户组,以后所有的站点的用户都建在这个組里,然后设置这个组在各个分区没有权限或者完全拒绝。然后再设置各个IIS用户在各在的文件夹里的权限。
因为比较多,所以我很不想写,其实知道了上面的原理,大多数人都应该懂了,除非不知道怎么添加系统用户和組,不知道怎么设置文件夹权限,不知道IIS站点属性在那里。真的有那样的人,你也不要着急,要沉住气慢慢来,具体的方法其实自己也能摸索出来的,我就是这样。当然,如果我有空,我会写我的具体设置方法,很傲能还会配上图片。
改名或卸载不安全组件
不安全组件不惊人
我的在阿江探针1.9里加入了不安全组件检测功能(其实这是参考7i24的代码写的,只是把界面改的友好了一点,检测方法和他是基本一样的),这个功能让很多站长吃惊不小,因为他发现他的服务器支持很多不安全组件。
其实,只要做好了上面的权限设置,那么FSO、XML、strem都不再是不安全组件了,因为他们都没有跨出自己的文件夹或者站点的权限。那个欢乐时光更不用怕,有杀毒软件在还怕什么时光啊。
最危险的组件是WSH和Shell,因为它可以运行你硬盘里的EXE等程序,比如它可以运行提升程序来提升SERV-U权限甚至用SERVU来运行更高权限的系统程序。
谨慎决定是否卸载一个组件
组件是为了应用而出现的,而不是为了不安全而出现的,所有的组件都有它的用处,所以在卸载一个组件之前,你必须确认这个组件是你的网站程序不需要的,或者即使去掉也不关大体的。否则,你只能留着这个组件并在你的ASP程序本身上下工夫,防止别人进来,而不是防止别人进来后SHELL。
比如,FSO和XML是非常常用的组件之一,很多程序会用到他们。WSH组件会被一部分主机管理程序用到,也有的打包程序也会用到。
卸载最不安全的组件
最简单的办法是直接卸载后删除相应的程序文件。将下面的代码保存为一个.BAT文件,( 以下均以 WIN2000 为例,如果使用2003,则系统文件夹应该是 C:WINDOWS )
regsvr32/u C:WINNTSystem32wshom.ocx
del C:WINNTSystem32wshom.ocx
regsvr32/u C:WINNTsystem32shell32.dll
del C:WINNTsystem32shell32.dll
然后运行一下,WScript.Shell, Shell.application, WScript.Network就会被卸载了。可能会提示无法删除文件,不用管它,重启一下服务器,你会发现这三个都提示"×安全"了。
改名不安全组件
需要注意的是组件的名称和Clsid都要改,并且要改彻底了。下面以Shell.application为例来介绍方法。
打开注册表编辑器【开始→运行→regedit回车】,然后【编辑→查找→填写Shell.application→查找下一个】,用这个方法能找到两个注册表项:"{ 13709620-C279-11CE-A49E-444553540000 }"和"Shell.application"。为了确保万无一失,把这两个注册表项导出来,保存为 .reg 文件。
比如我们想做这样的更改
13709620-C279-11CE-A49E-444553540000 改名为 13709620-C279-11CE-A49E-444553540001
Shell.application 改名为 Shell.application_ajiang
那么,就把刚才导出的.reg文件里的内容按上面的对应关系替换掉,然后把修改好的.reg文件导入到注册表中(双击即可),导入了改名后的注册表项之后,别忘记了删除原有的那两个项目。这里需要注意一点,Clsid中只能是十个数字和ABCDEF六个字母。
下面是我修改后的代码(两个文件我合到一起了):
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOTCLSID{ 13709620-C279-11CE-A49E-444553540001 }]
at ="Shell Automation Service"
[HKEY_CLASSES_ROOTCLSID{ 13709620-C279-11CE-A49E-444553540001 }InProcServer32]
@="C:\WINNT\system32\shell32 dot dll"
"ThreadingModel"="Apartment"
[HKEY_CLASSES_ROOTCLSID{ 13709620-C279-11CE-A49E-444553540001 }ProgID]
at ="Shell dot Application_ajiang.1"
[HKEY_CLASSES_ROOTCLSID{ 13709620-C279-11CE-A49E-444553540001 }TypeLib]
at ="{ 50a7e9b0-70ef-11d1-b75a-00a0c90564fe }"
[HKEY_CLASSES_ROOTCLSID{ 13709620-C279-11CE-A49E-444553540001 }Version]
@="1 dot 1"
[HKEY_CLASSES_ROOTCLSID{ 13709620-C279-11CE-A49E-444553540001 }VersionIndependentProgID]
at ="Shell dot Application_ajiang"
[HKEY_CLASSES_ROOTShell.Application_ajiang]
at ="Shell Automation Service"
[HKEY_CLASSES_ROOTShell dot Application_ajiangCLSID]
at ="{ 13709620-C279-11CE-A49E-444553540001 }"
[HKEY_CLASSES_ROOTShell dot Application_ajiangCurVer]
at ="Shell dot Application_ajiang.1"
你可以把这个保存为一个.reg文件运行试一下,但是可别就此了事,因为万一黑客也看了我的这篇文章,他会试验我改出来的这个名字的。
防止列出用户组和系统进程
我在阿江ASP探针1.9中结合7i24的方法利用getobject("WINNT")获得了系统用户和系统进程的列表,这个列表可能会被黑客利用,我们应当隐藏起来,方法是:
【开始→程序→管理工具→服务】,找到Workstation,停止它,禁用它。
防止Serv-U权限提升
其实,注销了Shell组件之后,侵入者运行提升工具的可能性就很小了,但是prel等别的脚本语言也有shell能力,为防万一,还是设置一下为好。
用Ultraedit打开ServUDaemon.exe查找Ascii:LocalAdministrator,和#l at $ak# dot lk;0 at P,修改成等长度的其它字符就可以了,ServUAdmin dot exe也一样处理。
另外注意设置Serv-U所在的文件夹的权限,不要让IIS匿名用户有读取的权限,否则人家下走你修改过的文件,照样可以分析出你的管理员名和密码。
利用ASP漏洞攻击的常见方法及防范
一般情况下,黑客总是瞄准论坛等程序,因为这些程序都有上传功能,他们很容易的就可以上传ASP木马,即使设置了权限,木马也可以控制当前站点的所有文件了。另外,有了木马就然后用木马上传提升工具来获得更高的权限,我们关闭shell组件的目的很大程度上就是为了防止攻击者运行提升工具。
如果论坛管理员关闭了上传功能,则黑客会想办法获得超管密码,比如,如果你用动网论坛并且数据库忘记了改名,人家就可以直接下载你的数据库了,然后距离找到论坛管理员密码就不远了。
作为管理员,我们首先要检查我们的ASP程序,做好必要的设置,防止网站被黑客进入。另外就是防止攻击者使用一个被黑的网站来控制整个服务器,因为如果你的服务器上还为朋友开了站点,你可能无法确定你的朋友会把他上传的论坛做好安全设置。这就用到了前面所说的那一大堆东西,做了那些权限设置和防提升之后,黑客就算是进入了一个站点,也无法破坏这个网站以外的东西。
后记
也许有安全高手或者破坏高手看了我的文章会嘲笑或者窃喜,但我想我的经验里毕竟还是存在很多正确的地方,有千千万万的比我知道的更少的人像我刚开始完全不懂的时候那样在渴求着这样一篇文章,所以我必须写,我不管别人怎么说我,我也不怕后世会有千千万万的人对我唾骂,我一个人承担下来,我也没有娘子需要交代的……
因为这其实只是抛砖引玉的做法,从别人的笑声中,我和我的读者们都可以学到更多有用的东西。
其实,在服务器的安全设置方面,我虽然有一些经验,但是还谈不上有研究,所以我写这篇文章的时候心里很不踏实,总害怕说错了会误了别人的事。
本文更侧重于防止ASP漏洞攻击,所以服务器防黑等方面的讲解可能略嫌少了点。
基本的服务器安全设置
安装补丁
安装好操作系统之后,最好能在托管之前就完成补丁的安装,配置好网络后,如果是2000则确定安装上了SP4,如果是2003,则最好安装上SP1,然后点击开始→Windows update,安装所有的关键更新。
安装杀毒软件
虽然杀毒软件有时候不能解决问题,但是杀毒软件避免了很多问题。我一直在用诺顿2004,据说2005可以杀木马,不过我没试过。还有人用瑞星,瑞星是确定可以杀木马的。更多的人说卡巴司机好,不过我没用过。
不要指望杀毒软件杀掉所有的木马,因为ASP木马的特征是可以通过一定手段来避开杀毒软件的查杀。
设置端口保护和防火墙、删除默认共享
都是服务器防黑的措施,即使你的服务器上没有IIS,这些安全措施都最好做上。这是阿江的盲区,大概知道屏蔽端口用本地安全策略,不过这方面的东西网上攻略很多,大家可以擞出来看看,晚些时候我或者会复制一些到我的网站上。
权限设置
阿江感觉这是防止ASP漏洞攻击的关键所在,优秀的权限设置可以将危害减少在一个IIS站点甚至一个虚拟目录里。我这里讲一下原理和设置思路,聪明的朋友应该看完这个就能解决问题了。
权限设置的原理
WINDOWS用户,在WINNT系统中大多数时候把权限按用户(組)来划分。在【开始→程序→管理工具→计算机管理→本地用户和组】管理系统用户和用户组。
NTFS权限设置,请记住分区的时候把所有的硬盘都分为NTFS分区,然后我们可以确定每个分区对每个用户开放的权限。【文件(夹)上右键→属性→安全】在这里管理NTFS文件(夹)权限。
IIS匿名用户,每个IIS站点或者虚拟目录,都可以设置一个匿名访问用户(现在暂且把它叫"IIS匿名用户"),当用户访问你的网站的.ASP文件的时候,这个.ASP文件所具有的权限,就是这个"IIS匿名用户"所具有的权限。
权限设置的思路
要为每个独立的要保护的个体(比如一个网站或者一个虚拟目录)创建一个系统用户,让这个站点在系统中具有惟一的可以设置权限的身份。
在IIS的【站点属性或者虚拟目录属性→目录安全性→匿名访问和验证控制→编辑→匿名访问→编辑】填写刚刚创建的那个用户名。
设置所有的分区禁止这个用户访问,而刚才这个站点的主目录对应的那个文件夹设置允许这个用户访问(要去掉继承父权限,并且要加上超管组和SYSTEM组)。
这样设置了之后,这个站点里的ASP程序就只有当前这个文件夹的权限了,从探针上看,所有的硬盘都是红叉叉。
我的设置方法
我是先创建一个用户组,以后所有的站点的用户都建在这个組里,然后设置这个组在各个分区没有权限或者完全拒绝。然后再设置各个IIS用户在各在的文件夹里的权限。
因为比较多,所以我很不想写,其实知道了上面的原理,大多数人都应该懂了,除非不知道怎么添加系统用户和組,不知道怎么设置文件夹权限,不知道IIS站点属性在那里。真的有那样的人,你也不要着急,要沉住气慢慢来,具体的方法其实自己也能摸索出来的,我就是这样。当然,如果我有空,我会写我的具体设置方法,很傲能还会配上图片。
改名或卸载不安全组件
不安全组件不惊人
我的在阿江探针1.9里加入了不安全组件检测功能(其实这是参考7i24的代码写的,只是把界面改的友好了一点,检测方法和他是基本一样的),这个功能让很多站长吃惊不小,因为他发现他的服务器支持很多不安全组件。
其实,只要做好了上面的权限设置,那么FSO、XML、strem都不再是不安全组件了,因为他们都没有跨出自己的文件夹或者站点的权限。那个欢乐时光更不用怕,有杀毒软件在还怕什么时光啊。
最危险的组件是WSH和Shell,因为它可以运行你硬盘里的EXE等程序,比如它可以运行提升程序来提升SERV-U权限甚至用SERVU来运行更高权限的系统程序。
谨慎决定是否卸载一个组件
组件是为了应用而出现的,而不是为了不安全而出现的,所有的组件都有它的用处,所以在卸载一个组件之前,你必须确认这个组件是你的网站程序不需要的,或者即使去掉也不关大体的。否则,你只能留着这个组件并在你的ASP程序本身上下工夫,防止别人进来,而不是防止别人进来后SHELL。
比如,FSO和XML是非常常用的组件之一,很多程序会用到他们。WSH组件会被一部分主机管理程序用到,也有的打包程序也会用到。
卸载最不安全的组件
最简单的办法是直接卸载后删除相应的程序文件。将下面的代码保存为一个.BAT文件,( 以下均以 WIN2000 为例,如果使用2003,则系统文件夹应该是 C:WINDOWS )
regsvr32/u C:WINNTSystem32wshom.ocx
del C:WINNTSystem32wshom.ocx
regsvr32/u C:WINNTsystem32shell32.dll
del C:WINNTsystem32shell32.dll
然后运行一下,WScript.Shell, Shell.application, WScript.Network就会被卸载了。可能会提示无法删除文件,不用管它,重启一下服务器,你会发现这三个都提示"×安全"了。
改名不安全组件
需要注意的是组件的名称和Clsid都要改,并且要改彻底了。下面以Shell.application为例来介绍方法。
打开注册表编辑器【开始→运行→regedit回车】,然后【编辑→查找→填写Shell.application→查找下一个】,用这个方法能找到两个注册表项:"{ 13709620-C279-11CE-A49E-444553540000 }"和"Shell.application"。为了确保万无一失,把这两个注册表项导出来,保存为 .reg 文件。
比如我们想做这样的更改
13709620-C279-11CE-A49E-444553540000 改名为 13709620-C279-11CE-A49E-444553540001
Shell.application 改名为 Shell.application_ajiang
那么,就把刚才导出的.reg文件里的内容按上面的对应关系替换掉,然后把修改好的.reg文件导入到注册表中(双击即可),导入了改名后的注册表项之后,别忘记了删除原有的那两个项目。这里需要注意一点,Clsid中只能是十个数字和ABCDEF六个字母。
下面是我修改后的代码(两个文件我合到一起了):
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOTCLSID{ 13709620-C279-11CE-A49E-444553540001 }]
at ="Shell Automation Service"
[HKEY_CLASSES_ROOTCLSID{ 13709620-C279-11CE-A49E-444553540001 }InProcServer32]
@="C:\WINNT\system32\shell32 dot dll"
"ThreadingModel"="Apartment"
[HKEY_CLASSES_ROOTCLSID{ 13709620-C279-11CE-A49E-444553540001 }ProgID]
at ="Shell dot Application_ajiang.1"
[HKEY_CLASSES_ROOTCLSID{ 13709620-C279-11CE-A49E-444553540001 }TypeLib]
at ="{ 50a7e9b0-70ef-11d1-b75a-00a0c90564fe }"
[HKEY_CLASSES_ROOTCLSID{ 13709620-C279-11CE-A49E-444553540001 }Version]
@="1 dot 1"
[HKEY_CLASSES_ROOTCLSID{ 13709620-C279-11CE-A49E-444553540001 }VersionIndependentProgID]
at ="Shell dot Application_ajiang"
[HKEY_CLASSES_ROOTShell.Application_ajiang]
at ="Shell Automation Service"
[HKEY_CLASSES_ROOTShell dot Application_ajiangCLSID]
at ="{ 13709620-C279-11CE-A49E-444553540001 }"
[HKEY_CLASSES_ROOTShell dot Application_ajiangCurVer]
at ="Shell dot Application_ajiang.1"
你可以把这个保存为一个.reg文件运行试一下,但是可别就此了事,因为万一黑客也看了我的这篇文章,他会试验我改出来的这个名字的。
防止列出用户组和系统进程
我在阿江ASP探针1.9中结合7i24的方法利用getobject("WINNT")获得了系统用户和系统进程的列表,这个列表可能会被黑客利用,我们应当隐藏起来,方法是:
【开始→程序→管理工具→服务】,找到Workstation,停止它,禁用它。
防止Serv-U权限提升
其实,注销了Shell组件之后,侵入者运行提升工具的可能性就很小了,但是prel等别的脚本语言也有shell能力,为防万一,还是设置一下为好。
用Ultraedit打开ServUDaemon.exe查找Ascii:LocalAdministrator,和#l at $ak# dot lk;0 at P,修改成等长度的其它字符就可以了,ServUAdmin dot exe也一样处理。
另外注意设置Serv-U所在的文件夹的权限,不要让IIS匿名用户有读取的权限,否则人家下走你修改过的文件,照样可以分析出你的管理员名和密码。
利用ASP漏洞攻击的常见方法及防范
一般情况下,黑客总是瞄准论坛等程序,因为这些程序都有上传功能,他们很容易的就可以上传ASP木马,即使设置了权限,木马也可以控制当前站点的所有文件了。另外,有了木马就然后用木马上传提升工具来获得更高的权限,我们关闭shell组件的目的很大程度上就是为了防止攻击者运行提升工具。
如果论坛管理员关闭了上传功能,则黑客会想办法获得超管密码,比如,如果你用动网论坛并且数据库忘记了改名,人家就可以直接下载你的数据库了,然后距离找到论坛管理员密码就不远了。
作为管理员,我们首先要检查我们的ASP程序,做好必要的设置,防止网站被黑客进入。另外就是防止攻击者使用一个被黑的网站来控制整个服务器,因为如果你的服务器上还为朋友开了站点,你可能无法确定你的朋友会把他上传的论坛做好安全设置。这就用到了前面所说的那一大堆东西,做了那些权限设置和防提升之后,黑客就算是进入了一个站点,也无法破坏这个网站以外的东西。
后记
也许有安全高手或者破坏高手看了我的文章会嘲笑或者窃喜,但我想我的经验里毕竟还是存在很多正确的地方,有千千万万的比我知道的更少的人像我刚开始完全不懂的时候那样在渴求着这样一篇文章,所以我必须写,我不管别人怎么说我,我也不怕后世会有千千万万的人对我唾骂,我一个人承担下来,我也没有娘子需要交代的……
因为这其实只是抛砖引玉的做法,从别人的笑声中,我和我的读者们都可以学到更多有用的东西。
恭喜我兄弟蓝色出书!书名《30天打造专业红客》
作者:Corbie 日期:2005-11-05 16:14
《30天打造专业红客》从今年7月开始进入出版社流程,“漫长”的等待,终于呈现在大家的面前了。虽然不敢说有多好多好,但它确实是一本精心之作,希望大家喜欢哦。
图书详细情况请参见:http://www.china-pub.com/computers/common/info.asp?id=27869
图书目录:http://www.china-pub.com/computers/common/Catalog.asp?IDD=27869&type=1
图书前言:http://www.china-pub.com/computers/common/Catalog.asp?IDD=27869&type=6
严重鄙视他,NND,劳资提供演示环境,连感谢我都没,哪天把他站给日了....哈哈!!!!
不过鄙视归鄙视,但能看到他出书,我真的好开心,永远不会忘记我,蓝色,小龙在南京聚会的日子,对酒当歌,讨论技术,真的是人生一大快事,兄弟,祝你一路走好!
郁闷!所有的代码丢失!!!
作者:Corbie 日期:2005-11-05 16:10
系统特性与web安全
作者:Corbie 日期:2005-11-02 11:41
文/安全天使·SuperHei
==============目录=================
一、WINDOWS系统
1、windows对..的支持
2、windows对.的忽略
二、*nix系统
1、freebsd系统下/的利用
2、大小写的区分
三,iis与apache
1、解析文件类型的利用
2、iis6的特性
3、apache文件名解析缺陷漏洞
四、配置文件的位置
==================================
一、WINDOWS系统
1、windows对..的支持
特性:win系统下可以用..进行跨目录操作
利用:web入侵中进行跨目录操作时,在web程序过滤了/的情况下,我们可以通过..突破。
实例:MolyX Board的attachment.php中attach变量过虑不严漏洞(http://4ngel.net/article/50.htm)在angel的文章里提供的解决方案里,只过滤了/,并没有对过滤,导致在win主机上漏洞依旧,详见 :http://www.4ngel.net/blog/hei/inDex.php?action=show&id=92
2、windows对.的忽略
特性:win系统下在文件后缀后的.将被忽略,如test.php. 与test.php是等同的
利用:导致上传文件时,被利用上传webshell
实例:缺
二、*nix系统
1、freebsd系统下/的利用 (ps:也有可能存在于其他系统)
特性:freebsd下因系统文件格式不同导致可以利用/进行目录列片攻击:如在freebsd下运行cat / 得到根目录下的所有文件夹及文件:
cat /
.
.. .snap(
dev
usr
var stand犅p
etc? cdromg? distsg?
bin? boot唜<
lib libexec
mnt ? proc唜?( rescue?? root唜?? sbin唜??
tmp
sys ? .cshrc?? .profile
? COPYRIGHTe?
compat?
home]D? entropy service ( d greenarmy玩
利用:mysql注射时可以配合load_file()进行目录列片攻击。如load_file(0x2F) [0x2F为/的hex值] ,load_file(0x2Froot0x2F)
实例:如图1
2、大小写的区分
特性:*nix系统是文件格式区分大小写,而windows系统不区分。
利用:最简单的利用也是最直接的 用来区分web服务器使用的系统
实例:分别提交
http://www.4ngel.net/blog/hei/inDex.php 正常返回
http://www.4ngel.net/blog/hei/inDex.php 提示文件不存在
这个说明www.4ngel.net主机为非windows系统。
三,iis与apache
1、解析文件类型的利用
iis在支持asp外,还支持asa,cer,cdx,htr
apache+php在支持php外,还支持php3,php4,phpx等
由于web程序的过虑不足,导致可以上传webshell
2、iis6的特性
IIS 6.0 目录名里包含有文件.asp会导致其目录下任意文件当做asp文件来运行。如我们把webshell保存到test.asp/webshell.gif,当iis6下访问http://xxx/test.asp/webshell.gif 时webshell.gif被当作asp文件来解析。可以利用到通过数据库备用得到的webshell,存放后门等方面。
3、apache文件名解析缺陷漏洞
apache 文件名解析时,是从后面开始检查后缀,按最后一个合法后缀执行。如:cmdshell.php.heige 因为heige不被apache解析,所以apache把这个文件当php文件解析了.
利用:
a、有的web程序安装后,会把install.php改名为install.php.lock,install.php.bak等等
实例:BMForum等
b、挖掘上传漏洞
实例:Discuz!等
c、.....
四、配置文件的位置
每个系统都自己特定的配置文件(包括第3方软件的配置文件)其位置也是相对固定的。文件内容包含了服务器的敏感信息。在我们利用web漏洞任意操作文件时(如 include包含漏洞,mysql注射load_file()的利用,等等)读取或下载这些配置文件,导致敏感信息的泄露。如:
windows系统:boot.ini mysql的%SYSTEMROOT%/my.ini servu的c:program filesserv-uservudeamon.ini 等等
*nix系统的 etc/目录下的文件 等等
小结
本文只是个人的一些经验的整理,由于个人的知识有限,如果有什么不对的或者你有好的发现和经验,等待您的分享!
==============目录=================
一、WINDOWS系统
1、windows对..的支持
2、windows对.的忽略
二、*nix系统
1、freebsd系统下/的利用
2、大小写的区分
三,iis与apache
1、解析文件类型的利用
2、iis6的特性
3、apache文件名解析缺陷漏洞
四、配置文件的位置
==================================
一、WINDOWS系统
1、windows对..的支持
特性:win系统下可以用..进行跨目录操作
利用:web入侵中进行跨目录操作时,在web程序过滤了/的情况下,我们可以通过..突破。
实例:MolyX Board的attachment.php中attach变量过虑不严漏洞(http://4ngel.net/article/50.htm)在angel的文章里提供的解决方案里,只过滤了/,并没有对过滤,导致在win主机上漏洞依旧,详见 :http://www.4ngel.net/blog/hei/inDex.php?action=show&id=92
2、windows对.的忽略
特性:win系统下在文件后缀后的.将被忽略,如test.php. 与test.php是等同的
利用:导致上传文件时,被利用上传webshell
实例:缺
二、*nix系统
1、freebsd系统下/的利用 (ps:也有可能存在于其他系统)
特性:freebsd下因系统文件格式不同导致可以利用/进行目录列片攻击:如在freebsd下运行cat / 得到根目录下的所有文件夹及文件:
cat /
.
.. .snap(
dev
usr
var stand犅p
etc? cdromg? distsg?
bin? boot唜<
lib libexec
mnt ? proc唜?( rescue?? root唜?? sbin唜??
tmp
sys ? .cshrc?? .profile
? COPYRIGHTe?
compat?
home]D? entropy service ( d greenarmy玩
利用:mysql注射时可以配合load_file()进行目录列片攻击。如load_file(0x2F) [0x2F为/的hex值] ,load_file(0x2Froot0x2F)
实例:如图1
2、大小写的区分
特性:*nix系统是文件格式区分大小写,而windows系统不区分。
利用:最简单的利用也是最直接的 用来区分web服务器使用的系统
实例:分别提交
http://www.4ngel.net/blog/hei/inDex.php 正常返回
http://www.4ngel.net/blog/hei/inDex.php 提示文件不存在
这个说明www.4ngel.net主机为非windows系统。
三,iis与apache
1、解析文件类型的利用
iis在支持asp外,还支持asa,cer,cdx,htr
apache+php在支持php外,还支持php3,php4,phpx等
由于web程序的过虑不足,导致可以上传webshell
2、iis6的特性
IIS 6.0 目录名里包含有文件.asp会导致其目录下任意文件当做asp文件来运行。如我们把webshell保存到test.asp/webshell.gif,当iis6下访问http://xxx/test.asp/webshell.gif 时webshell.gif被当作asp文件来解析。可以利用到通过数据库备用得到的webshell,存放后门等方面。
3、apache文件名解析缺陷漏洞
apache 文件名解析时,是从后面开始检查后缀,按最后一个合法后缀执行。如:cmdshell.php.heige 因为heige不被apache解析,所以apache把这个文件当php文件解析了.
利用:
a、有的web程序安装后,会把install.php改名为install.php.lock,install.php.bak等等
实例:BMForum等
b、挖掘上传漏洞
实例:Discuz!等
c、.....
四、配置文件的位置
每个系统都自己特定的配置文件(包括第3方软件的配置文件)其位置也是相对固定的。文件内容包含了服务器的敏感信息。在我们利用web漏洞任意操作文件时(如 include包含漏洞,mysql注射load_file()的利用,等等)读取或下载这些配置文件,导致敏感信息的泄露。如:
windows系统:boot.ini mysql的%SYSTEMROOT%/my.ini servu的c:program filesserv-uservudeamon.ini 等等
*nix系统的 etc/目录下的文件 等等
小结
本文只是个人的一些经验的整理,由于个人的知识有限,如果有什么不对的或者你有好的发现和经验,等待您的分享!
《日本你听着》-- 非常牛B的反日歌曲~!
作者:Corbie 日期:2005-11-02 11:38
下载地址:
http://www.midischool.com.cn/bbs/music/xrb.wma
歌词:
在亚洲东北部一个西太平洋中的"鸟"国,是谁tm厚颜无耻 不知道廉耻在过活,
他们男的思想龌龊,她们女的行为堕落,欺软怕硬 臭不要脸就是他(她)们的下流本色!
那是一面臭名昭著 沾满血腥的肮脏国旗,上有一处另人作呕 遭人唾弃的罪恶污迹,
它不偏不斜在正中心,像用过的夜用卫生巾,正配合他(她)们人民只配在厕所垃圾筒里呼吸!
操自己就是日本人,苛且喘息活在丑恶日本,犯下的滔天罪行,天理难容,人神共愤,
这种下等民族也tm配在世上生存,活该要被老天隔三岔五的搞些地震!
那是遗臭万年 人见人烦的日本鬼子!
他(她)们没有人格 没有尊严还没有个子!
是些道德沦丧 罪大恶极的下流痞子!
只会顺沟溜屁 认贼作父去甘当孙子!
从甲午战到九.一八事变,从卢沟桥事变开始了八年抗战,
小日本总tm在中国土地上犯贱,灭绝人性的留给我们不计其数的苦难!
狗日的丧心病狂制造了南京大屠杀的惊天血案!
狗日的丧尽天良实施了重庆大爆炸的惨绝人寰!
狗日的令人发指的建立了七三一用我们同胞试验!
狗日的下流无耻的利用三光对我们百姓摧残!
打倒日本帝国主义,我们前赴后继,狗日的敢玩儿猫腻,就把它夷为平地!
打倒日本帝国主义,我们势不两立,狗日的否认历史,你tm做贼心虚!
打倒日本帝国主义,我们前赴后继,狗日的拜鬼装b,就死无葬身之地!
打倒日本帝国主义,我们势不两立,狗日的所有产品,去死吧日本垃圾!
直到我们改革开放日益强大的今天,小日本的阴谋始终没有间断,
中国已经今非昔比,不是从前,你tm还有什么本事跟我们肆无忌惮?!
狗日的明目张胆的修改教科书,想为罪恶翻案!
狗日的没脸没皮的强占钓鱼岛,为霸占能源!
狗日的蠢蠢欲动想复活军国,复制了大和战舰!
狗日的妄想成为常任理事国,在亚洲公开叫板!
听说小日本有个什么管事儿的名字叫tm小泉,
竟去什么鬼社去拜曾残害我们的一群王八蛋!
如此胆大包天,你tm真是活的不太耐烦!
放心中国人民总有一天让你跟他们团圆!
我说联合国的秘书长那个姓安的大爷,小日本的狼子野心已经昭然若揭,
想要控制亚洲金融实行它的经济侵略,你可不能黑白不分纵容狗日的猖獗!
打倒日本帝国主义,我们前赴后继,狗日的敢玩儿猫腻,就把它夷为平地!
打倒日本帝国主义,我们势不两立,狗日的否认历史,你tm做贼心虚!
打倒日本帝国主义,我们前赴后继,狗日的拜鬼装b,就死无葬身之地!
打倒日本帝国主义,我们势不两立,狗日的所有产品,去死吧日本垃圾!
中国的姐妹兄弟自己也要争气,西北大学 珠海事件耻辱依然清晰!
不用枪炮一样可以给日本致命打击,今天开始拒绝日货从我自己做起!
我们一个月不买日本产品,小日本就要有数千家企业面临破产关门倒闭!
我们半年不买日本产品,小日本就要有一半的民众下岗失业回家种地!
我们一年不买日本产品,小日本引以为荣的经济将彻底崩溃瓦解没戏!
它还狂个屁,它还狂个屁,还是把每年1400亿美金留给我们自己!
毒气污染 它们拒绝赔款,狗日的新账旧账不容你说算就算!
松花江水,不会流干,九.一八也永远不会在中国土地上重演!
就算争端,我们再所难免,中国人民不怕牺牲随时准备迎战!
蹋平富士山,让樱花不再灿烂,干躺消灭不堪一击的日本又有何难?!
打倒日本帝国主义,我们前赴后继,狗日的敢玩儿猫腻,就把它夷为平地!
打倒日本帝国主义,我们势不两立,狗日的否认历史,你tm做贼心虚!
打倒日本帝国主义,我们前赴后继,狗日的拜鬼装b,就死无葬身之地!
打倒日本帝国主义,我们势不两立,狗日的所有产品,去死吧日本垃圾
http://www.midischool.com.cn/bbs/music/xrb.wma
歌词:
在亚洲东北部一个西太平洋中的"鸟"国,是谁tm厚颜无耻 不知道廉耻在过活,
他们男的思想龌龊,她们女的行为堕落,欺软怕硬 臭不要脸就是他(她)们的下流本色!
那是一面臭名昭著 沾满血腥的肮脏国旗,上有一处另人作呕 遭人唾弃的罪恶污迹,
它不偏不斜在正中心,像用过的夜用卫生巾,正配合他(她)们人民只配在厕所垃圾筒里呼吸!
操自己就是日本人,苛且喘息活在丑恶日本,犯下的滔天罪行,天理难容,人神共愤,
这种下等民族也tm配在世上生存,活该要被老天隔三岔五的搞些地震!
那是遗臭万年 人见人烦的日本鬼子!
他(她)们没有人格 没有尊严还没有个子!
是些道德沦丧 罪大恶极的下流痞子!
只会顺沟溜屁 认贼作父去甘当孙子!
从甲午战到九.一八事变,从卢沟桥事变开始了八年抗战,
小日本总tm在中国土地上犯贱,灭绝人性的留给我们不计其数的苦难!
狗日的丧心病狂制造了南京大屠杀的惊天血案!
狗日的丧尽天良实施了重庆大爆炸的惨绝人寰!
狗日的令人发指的建立了七三一用我们同胞试验!
狗日的下流无耻的利用三光对我们百姓摧残!
打倒日本帝国主义,我们前赴后继,狗日的敢玩儿猫腻,就把它夷为平地!
打倒日本帝国主义,我们势不两立,狗日的否认历史,你tm做贼心虚!
打倒日本帝国主义,我们前赴后继,狗日的拜鬼装b,就死无葬身之地!
打倒日本帝国主义,我们势不两立,狗日的所有产品,去死吧日本垃圾!
直到我们改革开放日益强大的今天,小日本的阴谋始终没有间断,
中国已经今非昔比,不是从前,你tm还有什么本事跟我们肆无忌惮?!
狗日的明目张胆的修改教科书,想为罪恶翻案!
狗日的没脸没皮的强占钓鱼岛,为霸占能源!
狗日的蠢蠢欲动想复活军国,复制了大和战舰!
狗日的妄想成为常任理事国,在亚洲公开叫板!
听说小日本有个什么管事儿的名字叫tm小泉,
竟去什么鬼社去拜曾残害我们的一群王八蛋!
如此胆大包天,你tm真是活的不太耐烦!
放心中国人民总有一天让你跟他们团圆!
我说联合国的秘书长那个姓安的大爷,小日本的狼子野心已经昭然若揭,
想要控制亚洲金融实行它的经济侵略,你可不能黑白不分纵容狗日的猖獗!
打倒日本帝国主义,我们前赴后继,狗日的敢玩儿猫腻,就把它夷为平地!
打倒日本帝国主义,我们势不两立,狗日的否认历史,你tm做贼心虚!
打倒日本帝国主义,我们前赴后继,狗日的拜鬼装b,就死无葬身之地!
打倒日本帝国主义,我们势不两立,狗日的所有产品,去死吧日本垃圾!
中国的姐妹兄弟自己也要争气,西北大学 珠海事件耻辱依然清晰!
不用枪炮一样可以给日本致命打击,今天开始拒绝日货从我自己做起!
我们一个月不买日本产品,小日本就要有数千家企业面临破产关门倒闭!
我们半年不买日本产品,小日本就要有一半的民众下岗失业回家种地!
我们一年不买日本产品,小日本引以为荣的经济将彻底崩溃瓦解没戏!
它还狂个屁,它还狂个屁,还是把每年1400亿美金留给我们自己!
毒气污染 它们拒绝赔款,狗日的新账旧账不容你说算就算!
松花江水,不会流干,九.一八也永远不会在中国土地上重演!
就算争端,我们再所难免,中国人民不怕牺牲随时准备迎战!
蹋平富士山,让樱花不再灿烂,干躺消灭不堪一击的日本又有何难?!
打倒日本帝国主义,我们前赴后继,狗日的敢玩儿猫腻,就把它夷为平地!
打倒日本帝国主义,我们势不两立,狗日的否认历史,你tm做贼心虚!
打倒日本帝国主义,我们前赴后继,狗日的拜鬼装b,就死无葬身之地!
打倒日本帝国主义,我们势不两立,狗日的所有产品,去死吧日本垃圾
加速PHP程序
作者:Corbie 日期:2005-10-23 13:15
出处 菜鸟油 ( http://www.noobu.com ) 作者:沧蓝 欢迎转载,转载请注明出处与作者,谢谢
<推荐> 本文的完美排版/最后更新修正版本:http://www.noobu.com/0514_eaccelerator.html <推荐>
什么是Eaccelerator?
也许你从没听说过Eaccelerator,但是我想大家都应该听说过MMCache吧?Eaccelerator可以算是MMCache的“后继者”。这款软件的功能就是通过在内存中缓存PHP文件从而加速PHP程序的执行速度。由于MMCache的原作者被Zend挖走,MMCache的开发一直处于停滞状态。而Eaccelerator却借鉴了MMCache的优点而一直在不断的更新。
首先,到Eaccelerator的网站上确定最新版本的版本号,然后下载到主机上,解压,并切换至eaccelerator目录。
紧接着需要编译并安装Eaccelerator。不过在此之前,我们先要确定主机上安装后一些必须的组件。
在Debian上,执行:
apt-get install gcc cpp php4-dev
如果是CentOS或Fedora或其他yum的操作系统,现用 yum search 查找文件名,然后用 yum install 来安装。
确认这些必须的组件都安装完毕之后一步一步执行以下命令:
export PHP_PREFIX="/usr"
$PHP_PREFIX/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config
make
make install
其中 PHP_PREFIX=”/usr” 为PHP的安装目录。
安装完成后,需要打开 php.ini 文件进行编辑,如果你不确定哪个是你的php.ini文件的话,请上传拥有以下内容的文件到服务器上,然后从浏览器中打开,寻找php.ini文件的路径:
<?php phpinfo(); ?>
在文件的最后,添加如下内容:
如果要把Eaccelerator安装为Zend的扩展:
zend_extension=”/usr/lib/php4/eaccelerator.so”
eaccelerator.shm_size=”16″
eaccelerator.cache_dir=”/tmp/eaccelerator”
eaccelerator.enable=”1″
eaccelerator.optimizer=”1″
eaccelerator.check_mtime=”1″
eaccelerator.debug=”0″
eaccelerator.filter=”"
eaccelerator.shm_max=”0″
eaccelerator.shm_ttl=”0″
eaccelerator.shm_prune_period=”0″
eaccelerator.shm_only=”0″
eaccelerator.compress=”1″
eaccelerator.compress_level=”9″
如果要安装为PHP的扩展:
extension=”eaccelerator.so”
eaccelerator.shm_size=”16″
eaccelerator.cache_dir=”/tmp/eaccelerator”
eaccelerator.enable=”1″
eaccelerator.optimizer=”1″
eaccelerator.check_mtime=”1″
eaccelerator.debug=”0″
eaccelerator.filter=”"
eaccelerator.shm_max=”0″
eaccelerator.shm_ttl=”0″
eaccelerator.shm_prune_period=”0″
eaccelerator.shm_only=”0″
eaccelerator.compress=”1″
eaccelerator.compress_level=”9″
最后,建立Eaccelerator的工作目录:
mkdir /tmp/eaccelerator
chmod 0777 /tmp/eaccelerator
好了,一切搞定!重起Apache吧(/etc/init.d/apache restart)!
注意事项:每次升级PHP前,请务必完全卸载Eaccelerator,等PHP升级完毕后,再重新安装。
出处 菜鸟油 ( http://www.noobu.com ) 作者:沧蓝 欢迎转载,转载请注明出处与作者,谢谢
<推荐> 本文的完美排版/最后更新修正版本:http://www.noobu.com/0514_eaccelerator.html <推荐>
<推荐> 本文的完美排版/最后更新修正版本:http://www.noobu.com/0514_eaccelerator.html <推荐>
什么是Eaccelerator?
也许你从没听说过Eaccelerator,但是我想大家都应该听说过MMCache吧?Eaccelerator可以算是MMCache的“后继者”。这款软件的功能就是通过在内存中缓存PHP文件从而加速PHP程序的执行速度。由于MMCache的原作者被Zend挖走,MMCache的开发一直处于停滞状态。而Eaccelerator却借鉴了MMCache的优点而一直在不断的更新。
首先,到Eaccelerator的网站上确定最新版本的版本号,然后下载到主机上,解压,并切换至eaccelerator目录。
紧接着需要编译并安装Eaccelerator。不过在此之前,我们先要确定主机上安装后一些必须的组件。
在Debian上,执行:
apt-get install gcc cpp php4-dev
如果是CentOS或Fedora或其他yum的操作系统,现用 yum search 查找文件名,然后用 yum install 来安装。
确认这些必须的组件都安装完毕之后一步一步执行以下命令:
export PHP_PREFIX="/usr"
$PHP_PREFIX/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config
make
make install
其中 PHP_PREFIX=”/usr” 为PHP的安装目录。
安装完成后,需要打开 php.ini 文件进行编辑,如果你不确定哪个是你的php.ini文件的话,请上传拥有以下内容的文件到服务器上,然后从浏览器中打开,寻找php.ini文件的路径:
<?php phpinfo(); ?>
在文件的最后,添加如下内容:
如果要把Eaccelerator安装为Zend的扩展:
zend_extension=”/usr/lib/php4/eaccelerator.so”
eaccelerator.shm_size=”16″
eaccelerator.cache_dir=”/tmp/eaccelerator”
eaccelerator.enable=”1″
eaccelerator.optimizer=”1″
eaccelerator.check_mtime=”1″
eaccelerator.debug=”0″
eaccelerator.filter=”"
eaccelerator.shm_max=”0″
eaccelerator.shm_ttl=”0″
eaccelerator.shm_prune_period=”0″
eaccelerator.shm_only=”0″
eaccelerator.compress=”1″
eaccelerator.compress_level=”9″
如果要安装为PHP的扩展:
extension=”eaccelerator.so”
eaccelerator.shm_size=”16″
eaccelerator.cache_dir=”/tmp/eaccelerator”
eaccelerator.enable=”1″
eaccelerator.optimizer=”1″
eaccelerator.check_mtime=”1″
eaccelerator.debug=”0″
eaccelerator.filter=”"
eaccelerator.shm_max=”0″
eaccelerator.shm_ttl=”0″
eaccelerator.shm_prune_period=”0″
eaccelerator.shm_only=”0″
eaccelerator.compress=”1″
eaccelerator.compress_level=”9″
最后,建立Eaccelerator的工作目录:
mkdir /tmp/eaccelerator
chmod 0777 /tmp/eaccelerator
好了,一切搞定!重起Apache吧(/etc/init.d/apache restart)!
注意事项:每次升级PHP前,请务必完全卸载Eaccelerator,等PHP升级完毕后,再重新安装。
出处 菜鸟油 ( http://www.noobu.com ) 作者:沧蓝 欢迎转载,转载请注明出处与作者,谢谢
<推荐> 本文的完美排版/最后更新修正版本:http://www.noobu.com/0514_eaccelerator.html <推荐>
如何防止PHP木马!
作者:Corbie 日期:2005-10-23 13:15
disable_functions= passthru,exec,shell_exec,system,fopen,mkdir,rmdir,chmod,unlink,dir
,fopen,fread,fclose,fwrite,file_exists
,closedir,is_dir,readdir.opendir
,fileperms.copy,unlink,delfile
disable_functions =unlink,opendir,chdir,rmdir,phpinfo,passthru,exec,shell_exec,popen,wscript,system
通过对php一些服务器端特性的配置加强php的安全
by san@xfocus.org
前面象Shaun Clowes和rfp等都比较详细的介绍了php、cgi程序在编程过程中遇到的问题,以及如何通
过应用程序漏洞突破系统,这篇文章我们来通过对php的一些服务器端特性来进行配置加强php的安全。写
cgi脚本的时候我们的确一定注意各种安全问题,对用户输入进行严格的过滤,但是常在岸边走哪有不湿鞋
,吃烧饼哪有不掉芝麻,人有失蹄马有失手,连著名的phpnuke、phpMyAdmin等程序都出现过很严重的
问题,更何况象我等小混混写的脚本。所以现在我们假设php脚本已经出现严重问题,比如象前一阵子
phpnuke的可以上传php脚本的大问题了,我们如何通过对服务器的配置使脚本出现如此问题也不能突破
系统。
1、编译的时候注意补上已知的漏洞
从4.0.5开始,php的mail函数加入了第五个参数,但它没有好好过滤,使得php应用程序能突破
safe_mode的限制而去执行命令。所以使用4.0.5和4.0.6的时候在编译前我们需要修改php源码包里
ext/standard/mail.c文件,禁止mail函数的第五参数或过滤shell字符。在mail.c文件的第152
行,也就是下面这行:
if (extra_cmd != NULL) {
后面加上extra_cmd=NULL;或extra_cmd = php_escape_shell_cmd(extra_cmd);然后编译php
那么我们就修补了这个漏洞。
2、修改php.ini配置文件
以php发行版的php.ini-dist为蓝本进行修改。
1)Error handling and logging
在Error handling and logging部分可以做一些设定。先找到:
display_errors = On
php缺省是打开错误信息显示的,我们把它改为:
display_errors = Off
关闭错误显示后,php函数执行错误的信息将不会再显示给用户,这样能在一定程度上防止攻击者从
错误信息得知脚本的物理位置,以及一些其它有用的信息,起码给攻击者的黑箱检测造成一定的障碍
。这些错误信息可能对我们自己有用,可以让它写到指定文件中去,那么修改以下:
log_errors = Off
改为:
log_errors = On
以及指定文件,找到下面这行:
;error_log = filename
去掉前面的;注释,把filename改为指定文件,如/usr/local/apache/logs/php_error.log
error_log = /usr/local/apache/logs/php_error.log
这样所有的错误都会写到php_error.log文件里。
2)Safe Mode
php的safe_mode功能对很多函数进行了限制或禁用了,能在很大程度解决php的安全问题。在
Safe Mode部分找到:
safe_mode = Off
改为:
safe_mode = On
这样就打开了safe_mode功能。象一些能执行系统命令的函数shell_exec()和``被禁止,其它的一
些执行函数如:exec(), system(), passthru(), popen()将被限制只能执行
safe_mode_exec_dir指定目录下的程序。如果你实在是要执行一些命令或程序,找到以下:
safe_mode_exec_dir =
指定要执行的程序的路径,如:
safe_mode_exec_dir = /usr/local/php/exec
然后把要用的程序拷到/usr/local/php/exec目录下,这样,象上面的被限制的函数还能执行该目录
里的程序。
关于安全模式下受限函数的详细信息请查看php主站的说明:
http://www.php.net/manual/en/features.safe-mode.php
3)disable_functions
如果你对一些函数的危害性不太清楚,而且也没有使用,索性把这些函数禁止了。找到下面这行:
disable_functions =
在”=“后面加上要禁止的函数,多个函数用”,“隔开。
3、修改httpd.conf
如果你只允许你的php脚本程序在web目录里操作,还可以修改httpd.conf文件限制php的操作路径。比
如你的web目录是/usr/local/apache/htdocs,那么在httpd.conf里加上这么几行:
<Directory /usr/local/apache/htdocs>
php_admin_value open_basedir /usr/local/apache/htdocs
</Directory>
这样,如果脚本要读取/usr/local/apache/htdocs以外的文件将不会被允许,如果错误显示打开的话
会提示这样的错误:
Warning: open_basedir restriction in effect. File is in wrong directory in
/usr/local/apache/htdocs/open.php on line 4
等等。
4、对php代码进行编译
Zend对php的贡献很大,php4的引擎就是用Zend的,而且它还开发了ZendOptimizer和ZendEncode
等许多php的加强组件。优化器ZendOptimizer只需在http://www.zend.com注册就可以免费得到,
下面几个是用于4.0.5和4.0.6的ZendOptimizer,文件名分别对于各自的系统:
ZendOptimizer-1.1.0-PHP_4.0.5-FreeBSD4.0-i386.tar.gz
ZendOptimizer-1.1.0-PHP_4.0.5-Linux_glibc21-i386.tar.gz
ZendOptimizer-1.1.0-PHP_4.0.5-Solaris-sparc.tar.gz
ZendOptimizer-1.1.0-PHP_4.0.5-Windows-i386.zip
优化器的安装非常方便,包里面都有详细的说明。以UNIX版本的为例,看清操作系统,把包里的
ZendOptimizer.so文件解压到一个目录,假设是/usr/local/lib下,在php.ini里加上两句:
zend_optimizer.optimization_level=15
zend_extension="/usr/local/lib/ZendOptimizer.so"
就可以了。用phpinfo()看到Zend图标左边有下面文字:
with Zend Optimizer v1.1.0, Copyright (c) 1998-2000, by Zend Technologies
那么,优化器已经挂接成功了。
但是编译器ZendEncode并不是免费的,这里提供给大家一个http://www.PHPease.com的马勇设计的
编译器外壳,如果用于商业目的,请与http://www.zend.com联系取得许可协议。
php脚本编译后,脚本的执行速度增加不少,脚本文件只能看到一堆乱码,这将阻止攻击者进一步分析服
务器上的脚本程序,而且原先在php脚本里以明文存储的口令也得到了保密,如mysql的口令。不过在服
务器端改脚本就比较麻烦了,还是本地改好再上传吧。
5、文件及目录的权限设置
web目录里除了上传目录,其它的目录和文件的权限一定不能让nobody用户有写权限。否则,攻击者可
以修改主页文件,所以web目录的权限一定要设置好。
还有,php脚本的属主千万不能是root,因为safe_mode下读文件的函数被限制成被读文件的属主必须
和当前执行脚本的属主是一样才能被读,否则如果错误显示打开的话会显示诸如以下的错误:
Warning: SAFE MODE Restriction in effect. The script whose uid is 500 is not
allowed to access /etc/passwd owned by uid 0 in /usr/local/apache/htdocs/open.php
on line 3
这样我们能防止许多系统文件被读,比如:/etc/passwd等。
上传目录和上传脚本的属主也要设成一样,否则会出现错误的,在safe_mode下这些要注意。
6、mysql的启动权限设置
mysql要注意的是不要用root来启动,最好另外建一个mysqladm用户。可以在/etc/rc.local等系统
启动脚本里加上一句:
su mysqladm -c "/usr/local/mysql/share/mysql/mysql.server start"
这样系统重启后,也会自动用mysqladmin用户启动mysql进程。
7、日志文件及上传目录的审核及
查看日志和人的惰性有很大关系,要从那么大的日志文件里查找攻击痕迹有些大海捞针,而且也未必有。
web上传的目录里的文件,也应该经常检查,也许程序有问题,用户传上了一些非法的文件,比如执行脚
本等。
8、操作系统自身的补丁
一样,给系统打已知漏洞的补丁是系统管理员最基本的职责,这也是最后一道防线。
经过以上的配置,虽然说不上固若金汤,但是也在相当程度上给攻击者的测试造成很多麻烦,即使php脚本程
序出现比较严重的漏洞,攻击者也无法造成实际性的破坏。
如果您还有更古怪,更变态的配置方法,希望能一起分享分享;)
参考资料:
PHP Manual
http://www.zend.com
,fopen,fread,fclose,fwrite,file_exists
,closedir,is_dir,readdir.opendir
,fileperms.copy,unlink,delfile
disable_functions =unlink,opendir,chdir,rmdir,phpinfo,passthru,exec,shell_exec,popen,wscript,system
通过对php一些服务器端特性的配置加强php的安全
by san@xfocus.org
前面象Shaun Clowes和rfp等都比较详细的介绍了php、cgi程序在编程过程中遇到的问题,以及如何通
过应用程序漏洞突破系统,这篇文章我们来通过对php的一些服务器端特性来进行配置加强php的安全。写
cgi脚本的时候我们的确一定注意各种安全问题,对用户输入进行严格的过滤,但是常在岸边走哪有不湿鞋
,吃烧饼哪有不掉芝麻,人有失蹄马有失手,连著名的phpnuke、phpMyAdmin等程序都出现过很严重的
问题,更何况象我等小混混写的脚本。所以现在我们假设php脚本已经出现严重问题,比如象前一阵子
phpnuke的可以上传php脚本的大问题了,我们如何通过对服务器的配置使脚本出现如此问题也不能突破
系统。
1、编译的时候注意补上已知的漏洞
从4.0.5开始,php的mail函数加入了第五个参数,但它没有好好过滤,使得php应用程序能突破
safe_mode的限制而去执行命令。所以使用4.0.5和4.0.6的时候在编译前我们需要修改php源码包里
ext/standard/mail.c文件,禁止mail函数的第五参数或过滤shell字符。在mail.c文件的第152
行,也就是下面这行:
if (extra_cmd != NULL) {
后面加上extra_cmd=NULL;或extra_cmd = php_escape_shell_cmd(extra_cmd);然后编译php
那么我们就修补了这个漏洞。
2、修改php.ini配置文件
以php发行版的php.ini-dist为蓝本进行修改。
1)Error handling and logging
在Error handling and logging部分可以做一些设定。先找到:
display_errors = On
php缺省是打开错误信息显示的,我们把它改为:
display_errors = Off
关闭错误显示后,php函数执行错误的信息将不会再显示给用户,这样能在一定程度上防止攻击者从
错误信息得知脚本的物理位置,以及一些其它有用的信息,起码给攻击者的黑箱检测造成一定的障碍
。这些错误信息可能对我们自己有用,可以让它写到指定文件中去,那么修改以下:
log_errors = Off
改为:
log_errors = On
以及指定文件,找到下面这行:
;error_log = filename
去掉前面的;注释,把filename改为指定文件,如/usr/local/apache/logs/php_error.log
error_log = /usr/local/apache/logs/php_error.log
这样所有的错误都会写到php_error.log文件里。
2)Safe Mode
php的safe_mode功能对很多函数进行了限制或禁用了,能在很大程度解决php的安全问题。在
Safe Mode部分找到:
safe_mode = Off
改为:
safe_mode = On
这样就打开了safe_mode功能。象一些能执行系统命令的函数shell_exec()和``被禁止,其它的一
些执行函数如:exec(), system(), passthru(), popen()将被限制只能执行
safe_mode_exec_dir指定目录下的程序。如果你实在是要执行一些命令或程序,找到以下:
safe_mode_exec_dir =
指定要执行的程序的路径,如:
safe_mode_exec_dir = /usr/local/php/exec
然后把要用的程序拷到/usr/local/php/exec目录下,这样,象上面的被限制的函数还能执行该目录
里的程序。
关于安全模式下受限函数的详细信息请查看php主站的说明:
http://www.php.net/manual/en/features.safe-mode.php
3)disable_functions
如果你对一些函数的危害性不太清楚,而且也没有使用,索性把这些函数禁止了。找到下面这行:
disable_functions =
在”=“后面加上要禁止的函数,多个函数用”,“隔开。
3、修改httpd.conf
如果你只允许你的php脚本程序在web目录里操作,还可以修改httpd.conf文件限制php的操作路径。比
如你的web目录是/usr/local/apache/htdocs,那么在httpd.conf里加上这么几行:
<Directory /usr/local/apache/htdocs>
php_admin_value open_basedir /usr/local/apache/htdocs
</Directory>
这样,如果脚本要读取/usr/local/apache/htdocs以外的文件将不会被允许,如果错误显示打开的话
会提示这样的错误:
Warning: open_basedir restriction in effect. File is in wrong directory in
/usr/local/apache/htdocs/open.php on line 4
等等。
4、对php代码进行编译
Zend对php的贡献很大,php4的引擎就是用Zend的,而且它还开发了ZendOptimizer和ZendEncode
等许多php的加强组件。优化器ZendOptimizer只需在http://www.zend.com注册就可以免费得到,
下面几个是用于4.0.5和4.0.6的ZendOptimizer,文件名分别对于各自的系统:
ZendOptimizer-1.1.0-PHP_4.0.5-FreeBSD4.0-i386.tar.gz
ZendOptimizer-1.1.0-PHP_4.0.5-Linux_glibc21-i386.tar.gz
ZendOptimizer-1.1.0-PHP_4.0.5-Solaris-sparc.tar.gz
ZendOptimizer-1.1.0-PHP_4.0.5-Windows-i386.zip
优化器的安装非常方便,包里面都有详细的说明。以UNIX版本的为例,看清操作系统,把包里的
ZendOptimizer.so文件解压到一个目录,假设是/usr/local/lib下,在php.ini里加上两句:
zend_optimizer.optimization_level=15
zend_extension="/usr/local/lib/ZendOptimizer.so"
就可以了。用phpinfo()看到Zend图标左边有下面文字:
with Zend Optimizer v1.1.0, Copyright (c) 1998-2000, by Zend Technologies
那么,优化器已经挂接成功了。
但是编译器ZendEncode并不是免费的,这里提供给大家一个http://www.PHPease.com的马勇设计的
编译器外壳,如果用于商业目的,请与http://www.zend.com联系取得许可协议。
php脚本编译后,脚本的执行速度增加不少,脚本文件只能看到一堆乱码,这将阻止攻击者进一步分析服
务器上的脚本程序,而且原先在php脚本里以明文存储的口令也得到了保密,如mysql的口令。不过在服
务器端改脚本就比较麻烦了,还是本地改好再上传吧。
5、文件及目录的权限设置
web目录里除了上传目录,其它的目录和文件的权限一定不能让nobody用户有写权限。否则,攻击者可
以修改主页文件,所以web目录的权限一定要设置好。
还有,php脚本的属主千万不能是root,因为safe_mode下读文件的函数被限制成被读文件的属主必须
和当前执行脚本的属主是一样才能被读,否则如果错误显示打开的话会显示诸如以下的错误:
Warning: SAFE MODE Restriction in effect. The script whose uid is 500 is not
allowed to access /etc/passwd owned by uid 0 in /usr/local/apache/htdocs/open.php
on line 3
这样我们能防止许多系统文件被读,比如:/etc/passwd等。
上传目录和上传脚本的属主也要设成一样,否则会出现错误的,在safe_mode下这些要注意。
6、mysql的启动权限设置
mysql要注意的是不要用root来启动,最好另外建一个mysqladm用户。可以在/etc/rc.local等系统
启动脚本里加上一句:
su mysqladm -c "/usr/local/mysql/share/mysql/mysql.server start"
这样系统重启后,也会自动用mysqladmin用户启动mysql进程。
7、日志文件及上传目录的审核及
查看日志和人的惰性有很大关系,要从那么大的日志文件里查找攻击痕迹有些大海捞针,而且也未必有。
web上传的目录里的文件,也应该经常检查,也许程序有问题,用户传上了一些非法的文件,比如执行脚
本等。
8、操作系统自身的补丁
一样,给系统打已知漏洞的补丁是系统管理员最基本的职责,这也是最后一道防线。
经过以上的配置,虽然说不上固若金汤,但是也在相当程度上给攻击者的测试造成很多麻烦,即使php脚本程
序出现比较严重的漏洞,攻击者也无法造成实际性的破坏。
如果您还有更古怪,更变态的配置方法,希望能一起分享分享;)
参考资料:
PHP Manual
http://www.zend.com
本博客立志于收集各类技术资料及技术信息,便于本人和广大网友查询检索,无论公司或个人认为本站存在侵权内容均可与本站联系,任何此类反馈信息一经查明属实后,将立即删除!

此主题相关图片如下:
