Apache降权和禁用PHP危险函数

Posted -qing-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache降权和禁用PHP危险函数相关的知识,希望对你有一定的参考价值。

测试环境:

Windows Server 2003 + phpstudy

首先在win2003里运行phpstudy,这里注意需要选择应用系统服务模式,应用之后重启phpstudy。

打开系统服务(开始>>管理工具>>服务),出现Apache2a这个服务就成功了。

技术图片

然后打开我们上传的PHP大马进行测试,正常情况下的权限为administrator。

技术图片

环境测试正常,开始我们今天的学习目的。系统的权限分为system、admin和user权限。前两个都拥有较高权限,因为我们需要进行降权。

1、新建一个普通用户,命令如下。

net user www-test /hacker /add

技术图片

 

打开服务界面,右键点击Apache2a服务,属性>>安全>>此账户,添加我们新建好的用户。这里注意密码需要重新输进去。设置完成后重启服务。

技术图片

重启时会出现如下错误:

技术图片

我们打开日志看一下是什么原因。我的电脑>>管理>>事件查看器>>应用程序。

技术图片

 

 

由日志可以发现是error.log文件拒绝访问,缺失权限。因此我们对此文件进行权限设置,重新添加我们新建用户的权限。

技术图片

这里由于是日志文件,我就直接给了完全控制权限。

技术图片

重新启动Apache2a服务,成功启动。在webshell上查看当前用户,成功降为普通用户。

技术图片

2、进行目录访问限制。将网站根目录WWW设置为只读权限,禁止创建文件和修改文件。

mysql目录下的data文件夹权限只给:遍历文件夹和列出文件夹。

技术图片

权限设置成功。

至此。我们的权限设置就差不多完成了,其他目录的权限设置也大同小异,大家可以自行修改。

最后,我们还希望最好能够直接K掉webshell的命令执行功能,进一步降低风险,怎么做呢?

打开php.ini文件,找到 disable_functions =,将PHP危险函数添加进去。如下:

disable_functions = phpinfo,eval,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen,popen

 

以上是关于Apache降权和禁用PHP危险函数的主要内容,如果未能解决你的问题,请参考以下文章

工作笔记04----------禁用PHP危险函数

一些需要禁用的PHP危险函数(disable_functions)

宝塔面板 – NGINXPHP版本号隐藏/危险函数的禁用

PHP安全配置之禁用参数

降权-2012R2&apache&mysql

在 PHP / Apache / Linux 上下文中,为啥 chmod 777 是危险的?