在这里让我们一起学习,一起提高!
php open_basedir安全与性能的取舍
[
2010-9-8 13:41 | by jed ]
2010-9-8 13:41 | by jed ]
网站的安全与性能似乎是矛与盾的关系。对于一个php网站来说,尤其难以取舍。举个最简单的例子:php配置文件的open_basedir将 PHP 所能打开的文件限制在指定的目录树,包括文件本身。本来这对于网站的安全是十分有利的;但据笔者从网上获取的资料来看,open_basedir会对php操作io的性能产生很大的影响。研究资料表明,配置了php_basedir的脚本io执行速度会比没有配置的慢10倍甚至更多!
起初,我也不太相信这个结果,不过测试数据却说服我承认这个观点。
创建一个简单的脚本:
起初,我也不太相信这个结果,不过测试数据却说服我承认这个观点。
创建一个简单的脚本:
php木马webshell扫描器
[
2010-9-8 09:49 | by jed ]
2010-9-8 09:49 | by jed ]
因为前端时间服务器被放过 所以写了个webshell扫描器 呵呵 专杀php webshell 不管大马还是小马 包括一句话 现在放出代码来。
针对PHP木马攻击的防御措施
[
2010-9-8 09:43 | by jed ]
2010-9-8 09:43 | by jed ]
1、防止跳出web目录
首先修改httpd.conf,如果你只允许你的php脚本程序在web目录里操作,还可以修改httpd.conf文件限制php的操作路径。比如你的web目录是/usr/local/apache/htdocs,那么在httpd.conf里加上这么几行:
php_admin_value open_basedir /usr/local/apache
/htdocs
这样,如果脚本要读取/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
等等。
2、防止php木马执行webshell
打开safe_mode,
在,php.ini中设置
disable_functions= passthru,exec,shell_exec,system
二者选一即可,也可都选
3、防止php木马读写文件目录
在php.ini中的
disable_functions= passthru,exec,shell_exec,system
后面加上php处理文件的函数
主要有
fopen,mkdir,rmdir,chmod,unlink,dir
fopen,fread,fclose,fwrite,file_exists
closedir,is_dir,readdir.opendir
fileperms.copy,unlink,delfile
即成为
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
ok,大功告成,php木马拿我们没辙了,遗憾的是这样的话,利用文本数据库的那些东西就都不能用了。
如果是在windos平台下搭建的apache我们还需要注意一点,apache默认运行是system权限,这很恐怖,这让人感觉很不爽.那我们就给apache降降权限吧。
net user apache fuckmicrosoft /add
net localgroup users apache /del
ok.我们建立了一个不属于任何组的用户apche。
我们打开计算机管理器,选服务,点apache服务的属性,我们选择log on,选择this account,我们填入上面所建立的账户和密码,重启apache服务,ok,apache运行在低权限下了。
实际上我们还可以通过设置各个文件夹的权限,来让apache用户只能执行我们想让它能干的事情,给每一个目录建立一个单独能读写的用户。这也是当前很多虚拟主机提供商的流行配置方法哦,不过这种方法用于防止这里就显的有点大材小用了。
首先修改httpd.conf,如果你只允许你的php脚本程序在web目录里操作,还可以修改httpd.conf文件限制php的操作路径。比如你的web目录是/usr/local/apache/htdocs,那么在httpd.conf里加上这么几行:
php_admin_value open_basedir /usr/local/apache
/htdocs
这样,如果脚本要读取/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
等等。
2、防止php木马执行webshell
打开safe_mode,
在,php.ini中设置
disable_functions= passthru,exec,shell_exec,system
二者选一即可,也可都选
3、防止php木马读写文件目录
在php.ini中的
disable_functions= passthru,exec,shell_exec,system
后面加上php处理文件的函数
主要有
fopen,mkdir,rmdir,chmod,unlink,dir
fopen,fread,fclose,fwrite,file_exists
closedir,is_dir,readdir.opendir
fileperms.copy,unlink,delfile
即成为
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
ok,大功告成,php木马拿我们没辙了,遗憾的是这样的话,利用文本数据库的那些东西就都不能用了。
如果是在windos平台下搭建的apache我们还需要注意一点,apache默认运行是system权限,这很恐怖,这让人感觉很不爽.那我们就给apache降降权限吧。
net user apache fuckmicrosoft /add
net localgroup users apache /del
ok.我们建立了一个不属于任何组的用户apche。
我们打开计算机管理器,选服务,点apache服务的属性,我们选择log on,选择this account,我们填入上面所建立的账户和密码,重启apache服务,ok,apache运行在低权限下了。
实际上我们还可以通过设置各个文件夹的权限,来让apache用户只能执行我们想让它能干的事情,给每一个目录建立一个单独能读写的用户。这也是当前很多虚拟主机提供商的流行配置方法哦,不过这种方法用于防止这里就显的有点大材小用了。
一般网站木马特征:
1.有一些常见的危险函数,如shell_exec,passthru,move_uploaded_file ($_FILES’)等等。大部分常用的webshell都有这些函数。当然还有一些危险的sql查询语句。2.有一些常见的关键词。大部分流行的php木马都是从几款webshell修改而来,里面会有一些常见的词,比如说一个在线的黑客工具网站‘cha88.cn’(现已改名为tools88.com),phpspy(一款最常用的php webshell)3.有一些加密的特征。正常的php文件一般是未加密过的,而很多php木马为了逃过杀毒软件的查杀,会进行加密。会出现类似于val(gzinflate(这样的加密函数。1.有一些常见的危险函数,如shell_exec,passthru,move_uploaded_file ($_FILES’)等
等。大部分常用的webshell都有这些函数。当然还有一些危险的sql查询语句。
2.有一些常见的关键词。大部分流行的php木马都是从几款webshell修改而来,里面会有一些
常见的词,比如说一个在线的黑客工具网站‘cha88.cn’(现已改名为tools88.com),
phpspy(一款最常用的php webshell)
3.有一些加密的特征。正常的php文件一般是未加密过的,而很多php木马为了逃过杀毒软件
的查杀,会进行加密
特征码:
$check_injection= array( //危险代码
‘clsid:72C24DD5-D70A-438B-8A42-98424B88AFB8′,
‘clsid:13709620-C279-11CE-A49E-444553540000′,
‘WScript.Shell’,
‘Shell.Application’,
‘eval’,
‘Execute’,
‘CreateTextFile’,
‘OpenTextFile’,
‘SaveToFile’,
‘CreateObject’,
‘cmd’,
‘passthru’
);
原理很简单 ,对特征码进行文件式扫描…
1.有一些常见的危险函数,如shell_exec,passthru,move_uploaded_file ($_FILES’)等等。大部分常用的webshell都有这些函数。当然还有一些危险的sql查询语句。2.有一些常见的关键词。大部分流行的php木马都是从几款webshell修改而来,里面会有一些常见的词,比如说一个在线的黑客工具网站‘cha88.cn’(现已改名为tools88.com),phpspy(一款最常用的php webshell)3.有一些加密的特征。正常的php文件一般是未加密过的,而很多php木马为了逃过杀毒软件的查杀,会进行加密。会出现类似于val(gzinflate(这样的加密函数。1.有一些常见的危险函数,如shell_exec,passthru,move_uploaded_file ($_FILES’)等
等。大部分常用的webshell都有这些函数。当然还有一些危险的sql查询语句。
2.有一些常见的关键词。大部分流行的php木马都是从几款webshell修改而来,里面会有一些
常见的词,比如说一个在线的黑客工具网站‘cha88.cn’(现已改名为tools88.com),
phpspy(一款最常用的php webshell)
3.有一些加密的特征。正常的php文件一般是未加密过的,而很多php木马为了逃过杀毒软件
的查杀,会进行加密
特征码:
$check_injection= array( //危险代码
‘clsid:72C24DD5-D70A-438B-8A42-98424B88AFB8′,
‘clsid:13709620-C279-11CE-A49E-444553540000′,
‘WScript.Shell’,
‘Shell.Application’,
‘eval’,
‘Execute’,
‘CreateTextFile’,
‘OpenTextFile’,
‘SaveToFile’,
‘CreateObject’,
‘cmd’,
‘passthru’
);
原理很简单 ,对特征码进行文件式扫描…
mysql数据库频繁掉线的问题解决方法汇总
[
2010-8-23 16:37 | by jed ]
2010-8-23 16:37 | by jed ]
服务器出现MYSQL频繁掉线,提示连接失败,刷新后又正常的问题。刚开始还以为是mysql连接数的问题,改了无数次,还是一样没解决问题。后来终于找到什么原因了!微软9月9日发布了TCP/IP更新补丁(KB967723),如果服务器开启自动更新或者有自动更新软件下载更新了这个补丁,那么就会出现这个问题。
有人可能会问,为什么9号出现的补丁,到现在才发现问题?
大家都知道,服务器不是每天都重启的,有的服务器可能一个月或者一年半载重启一次,有的可能在9月9日以后重启过服务器,所以补丁生效了(我个人这么认为)。
第一种方法:
补丁卸载方法:登录服务器,进入控制面板 — 添加和删除程序 — (勾选上方的“显示更新”)
有人可能会问,为什么9号出现的补丁,到现在才发现问题?
大家都知道,服务器不是每天都重启的,有的服务器可能一个月或者一年半载重启一次,有的可能在9月9日以后重启过服务器,所以补丁生效了(我个人这么认为)。
第一种方法:
补丁卸载方法:登录服务器,进入控制面板 — 添加和删除程序 — (勾选上方的“显示更新”)
目前市场上开关插座价格分五个档次
最高:
吉徕等国外直接进口产品等;
梅兰日兰枫木框(不是木纹塑料框,市场上很少见的)、金属框L86系列;
天基金属面板产品(贵族系列);
这些产品单个开关一般在100元以上,暴贵,性价比奇低。除非拿钱不当钱的tx,不然不做考虑(特别是天基金属面板产品,里面一塌糊涂,连个双面保护门都没有,就表面有块钢板价格就提高10倍,实在是骗人产品)。
较高:
TCL超音速、西蒙60、奇胜E3000、梅兰日兰L86、罗格朗马赛
这些产品配两室两厅一般花费在1600~2500,外观整体漂亮,比较有档次。如果真的喜欢,多花1000元个人感觉还是很值的。需要注意的是其中西蒙60要配专用的暗盒(黑色的,尺寸较小),如果已经按了普通的60系列就不能装了;超市里面西蒙的黑色暗盒不要随便买,除非确定肯定用西蒙60。
最高:
吉徕等国外直接进口产品等;
梅兰日兰枫木框(不是木纹塑料框,市场上很少见的)、金属框L86系列;
天基金属面板产品(贵族系列);
这些产品单个开关一般在100元以上,暴贵,性价比奇低。除非拿钱不当钱的tx,不然不做考虑(特别是天基金属面板产品,里面一塌糊涂,连个双面保护门都没有,就表面有块钢板价格就提高10倍,实在是骗人产品)。
较高:
TCL超音速、西蒙60、奇胜E3000、梅兰日兰L86、罗格朗马赛
这些产品配两室两厅一般花费在1600~2500,外观整体漂亮,比较有档次。如果真的喜欢,多花1000元个人感觉还是很值的。需要注意的是其中西蒙60要配专用的暗盒(黑色的,尺寸较小),如果已经按了普通的60系列就不能装了;超市里面西蒙的黑色暗盒不要随便买,除非确定肯定用西蒙60。
linux下IPTABLES配置详解
[
2010-8-13 08:19 | by jed ]
2010-8-13 08:19 | by jed ]
我们来配置一个filter表的防火墙.
(1)查看本机关于IPTABLES的设置情况
[root@tp ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain RH-Firewall-1-INPUT (0 references)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255
ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT ah -- 0.0.0.0/0 0.0.0.0/0
ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:631
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
可以看出我在安装linux时,选择了有防火墙,并且开放了22,80,25端口.
(1)查看本机关于IPTABLES的设置情况
[root@tp ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain RH-Firewall-1-INPUT (0 references)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255
ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT ah -- 0.0.0.0/0 0.0.0.0/0
ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:631
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
可以看出我在安装linux时,选择了有防火墙,并且开放了22,80,25端口.
各种服务器配置的比较
[
2010-8-10 21:12 | by jed ]
2010-8-10 21:12 | by jed ]
1) 目前各种服务器HTTP Server对PHP的支持一共有三种:
a.通过HTTPServer内置的模块来实现,
例如Apache的mod_php5,类似的Apache内置的mod_perl可以对perl支持;
b.通过CGI来实现,这个就好比之前perl的CGI,该种方式的缺点是性能差,因为每次服务器遇到这些脚本都需要重新启动脚本解析器来执行脚本然后将结果返回给服务器;另一方面就是不太安全;该方面几乎很少使用了。
c.最新出现一种叫做FastCGI。所谓FastCGI就是对CGI的改进。它一般采用C/S结构,一般脚本处理器会启动一个或者多个daemon进程,每次HTTPServer遇到脚本的时候,直接交付给FastCGI的进程来执行,然后将得到的结果(通常为html)返回给浏览器。
>该种方法的问题存在一个小问题是当遇到大流量的频繁请求的话,脚本处理器的daemon进程可能会超负荷从而变得很慢,甚至发生内存泄漏;
>但是比较起Apache的内置模块的方式的优点是由于Server和脚本解析器完全分开各负其责,因此服务器不再臃肿,可以专心地进行静态文件响应或者将动态脚本解析器的结果返回给用户客户端。所以比较起Apache的内置模块方式,有时候性能要提高很多。有人测试可能会达到 Apache+mod_php的5~10倍。
a.通过HTTPServer内置的模块来实现,
例如Apache的mod_php5,类似的Apache内置的mod_perl可以对perl支持;
b.通过CGI来实现,这个就好比之前perl的CGI,该种方式的缺点是性能差,因为每次服务器遇到这些脚本都需要重新启动脚本解析器来执行脚本然后将结果返回给服务器;另一方面就是不太安全;该方面几乎很少使用了。
c.最新出现一种叫做FastCGI。所谓FastCGI就是对CGI的改进。它一般采用C/S结构,一般脚本处理器会启动一个或者多个daemon进程,每次HTTPServer遇到脚本的时候,直接交付给FastCGI的进程来执行,然后将得到的结果(通常为html)返回给浏览器。
>该种方法的问题存在一个小问题是当遇到大流量的频繁请求的话,脚本处理器的daemon进程可能会超负荷从而变得很慢,甚至发生内存泄漏;
>但是比较起Apache的内置模块的方式的优点是由于Server和脚本解析器完全分开各负其责,因此服务器不再臃肿,可以专心地进行静态文件响应或者将动态脚本解析器的结果返回给用户客户端。所以比较起Apache的内置模块方式,有时候性能要提高很多。有人测试可能会达到 Apache+mod_php的5~10倍。
先说说什么是一句话木马,其实大家可以先在搜索引擎里边搜索下,了解下。
常见一句话木马服务端:
服务端只需要简单的一行代码,即可用此程序实现常用的管理功能。
目前支持的服务端脚本:PHP, ASP, ASP.NET。
在服务端运行的代码如下:
PHP:
ASP: <%eval request("pass")%>
ASP.NET: <%@ Page Language="Jscript"%><%eval(Request.Item["hk715"],"unsafe");%>
(注意: ASP.NET要单独一个文件或此文件也是Jscript语言)
客户端:有专门的程序,我经常使用的是中国菜刀。
既然是木马,就是可以用来入侵你的服务器,写shell等,但是他隐蔽性强,防范比较困难。
下面提几点防范措施:
1、服务器要控制好用户权限、对于一个服务器有多个网站的,要控制好各网站权限,各网站应相互独立。IIS下用虚拟主机安全配置方法,linux下,apache容易控制,nginx的话,目前还没有较好控制方法。这个的目的就是防止跨站。另外对与指定网站,一定需控制好写权限。
2、如果是IIS主机,可以安装网站净化器(今天听朋友的IDC说要安装一款软件 网站净化器
常见一句话木马服务端:
服务端只需要简单的一行代码,即可用此程序实现常用的管理功能。
目前支持的服务端脚本:PHP, ASP, ASP.NET。
在服务端运行的代码如下:
PHP:
ASP: <%eval request("pass")%>
ASP.NET: <%@ Page Language="Jscript"%><%eval(Request.Item["hk715"],"unsafe");%>
(注意: ASP.NET要单独一个文件或此文件也是Jscript语言)
客户端:有专门的程序,我经常使用的是中国菜刀。
既然是木马,就是可以用来入侵你的服务器,写shell等,但是他隐蔽性强,防范比较困难。
下面提几点防范措施:
1、服务器要控制好用户权限、对于一个服务器有多个网站的,要控制好各网站权限,各网站应相互独立。IIS下用虚拟主机安全配置方法,linux下,apache容易控制,nginx的话,目前还没有较好控制方法。这个的目的就是防止跨站。另外对与指定网站,一定需控制好写权限。
2、如果是IIS主机,可以安装网站净化器(今天听朋友的IDC说要安装一款软件 网站净化器




2007-3-9 10:25 | by 
