【随笔】Apache降权和禁用PHP危险函数
测试环境:
Windows Server 2003 + phpstudy
首先在win2003里运行phpstudy,这里注意需要选择应用系统服务模式,应用之后重启phpstudy。
打开系统服务(开始>>管理工具>>服务),出现Apache2a这个服务就成功了。

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

环境测试正常,开始我们今天的学习目的。系统的权限分为system、admin和user权限。前两个都拥有较高权限,因为我们需要进行降权。
1、新建一个普通用户,命令如下。
net user yu 123qwe /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
保存之后重启。再次执行命令,没有出现结果,成功完成。

笨鸟先飞早入林,笨人勤学早成材。 转载请注明出处:
撰写人:fox-yu http://www.cnblogs.com/fox-yu/
【随笔】Apache降权和禁用PHP危险函数的更多相关文章
- Apache降权和禁用PHP危险函数
测试环境: Windows Server 2003 + phpstudy 首先在win2003里运行phpstudy,这里注意需要选择应用系统服务模式,应用之后重启phpstudy. 打开系统服务(开 ...
- 禁用了传说中的PHP危险函数之后,Laravel的定时任务不能执行了?
虽然已是 2018 年,但网上依然流传着一些「高危 PHP 函数,请一定要禁用!」的标题党文章(搜索关键字:一些需要禁用的PHP危险函数). 这些文章的内容简单直接,给出 php.ini 的 disa ...
- 一些需要禁用的PHP危险函数(disable_functions)
一些需要禁用的PHP危险函数(disable_functions) 有时候为了安全我们需要禁掉一些PHP危险函数,整理如下需要的朋友可以参考下 phpinfo() 功能描述:输出 PHP 环境信息 ...
- PHP危险函数总结学习
1.PHP中代码执行的危险函数 call_user_func() 第一个参数 callback 是被调用的回调函数,其余参数是回调函数的参数. 传入call_user_func()的参数不能为引用传递 ...
- php常见的危险函数
代码执行的危险函数 eval() 把字符串作为php代码执行 早期php一句话木马都用这个 <?php @eval($_POST['shell']);?> assert() 检查一个断言是 ...
- WordPress ”无法发送电子邮件,可能原因:您的主机禁用了mail()函数“的解决办法
WordPress网站中出现 "无法发送电子邮件,可能原因:您的主机禁用了mail()函数"的情况一般都是因为所在主机环境不支持在线邮件收发功能导致,如果不支持的话,那么像类似 N ...
- org.apache.commons.lang.StringUtils 中 Join 函数
转自 http://my.oschina.net/zenglingfan/blog/134872 写代码的时候,经常会碰到需要把一个List中的每个元素,按逗号分隔转成字符串的需求,以前是自己写一段比 ...
- WordPress无法发送电子邮件,可能原因:您的主机禁用了mail()函数解决方案
体验更优排版请移步原文:http://blog.kwin.wang/website/wp-cant-send-email-solution.html 最近折腾了下WordPress,给米表 搭了个论坛 ...
- PHP危险函数的持续学习
记录下遇到过的PHP危险函数 0x01 escapeshellarg()与escapeshellsmd()联合 先给出官方的定义: escapeshellarg ( string $arg ) : s ...
随机推荐
- 性能提升40%: 腾讯 TKE 用 eBPF 绕过 conntrack 优化 K8s Service
Kubernetes Service 用于实现集群中业务之间的互相调用和负载均衡,目前社区的实现主要有userspace,iptables和IPVS三种模式.IPVS模式的性能最好,但依然有优化的空间 ...
- Photon PUN 二 大厅 & 房间
一, 简介 玩过 LOL , dota2, 王者荣耀 等MOBA类的游戏,就很容易理解大厅和房间了. LOL中一个服务器就相当与一个大厅; 什么电一,电二 ,,, 联通一区等 每一个区就相当于一个大厅 ...
- Java实现IO通信(服务器篇)
Java实现IO通信(服务器篇) 如何利用java实现我们的通信呢?首先我们了解一下什么是通信?通信的机制是怎样的? 首先来讨论一下什么是通信?通信,指人与人或人与自然之间通过某种行为或媒介进行的信息 ...
- 如何设置Tomact的标题,运行Tomcat显示为自己程序的命名
当我们使用Tomcat部署好一个web系统后,在窗口处默认会显示Tomcat名字.但如果我们用多个Tomcat部署时,则需要区分这些窗口,这是需要修改Tomact的配置,来设置一个我们需要显示的标题. ...
- github travis-ci持续部署hexo博客
引言 目前我的博客源码是在coding上的,因为有很方便的持续部署,但是coding目前还不提供push文件的开放API. 因为最近做了一个一键分发平台,将博客分发到简书.CSDN等等的平台,但是我的 ...
- vue bus 中央事件总线
1.全局定义bus 新建src/eventBus.js 文件 import Vue from 'vue' export default new Vue() // 全局引入mai.jsvue中央事件总 ...
- 《闲扯Redis十一》Redis 有序集合对象底层实现
一.前言 Redis 提供了5种数据类型:String(字符串).Hash(哈希).List(列表).Set(集合).Zset(有序集合),理解每种数据类型的特点对于redis的开发和运维非常重要. ...
- 剑指 Offer 55 - I. 二叉树的深度
题目描述 输入一棵二叉树的根节点,求该树的深度.从根节点到叶节点依次经过的节点(含根.叶节点)形成树的一条路径,最长路径的长度为树的深度. 例如: 给定二叉树 [3,9,20,null,null,15 ...
- 20190925-01安装redis 000 022
1.将redis压缩包放入Linux系统有4种办法. 第一:如果安装了VMware Tools工具可以直接进行拖拽 第二:在windows中找到配置好的共享文件夹将redis压缩包放入其中,在Linu ...
- 10.QT-QAudioOutput类使用
本章需要用到的类如下: QAudioDeviceInfo类提供音频输出设备 QAudioFormat类提供音频参数设置 QAudioOutput类提供了用于将PCM原始音频数据发送到音频输出设备的接口 ...