【问题标题】:Hidden spam/ad links in Joomla templateJoomla 模板中隐藏的垃圾邮件/广告链接
【发布时间】:2012-12-08 13:37:53
【问题描述】:

当我在查看我正在构建的网站的源代码时,我刚刚发现了一些隐藏的链接,我发现了一些隐藏的垃圾邮件链接。

我花了一个小时试图在一些模板文件中找到它们,但没有运气。链接如下(来自html源代码):

<div id="jxtc-zt"><a href="http://magical-place.ru/" target="_blank" 
title="достопримечательности Европы">достопримечательности Европы</a></br><a 
href="http://joomla-master.org/" target="_blank" title="шаблоны Joomla 3.5">шаблоны  Joomla
3.5</a></div>

还有这个:

</div><div id="jxtc-zt"><a href="http://battlefield4.com.ua/" target="_blank" 
title="Battlefield 4">Battlefield 4</a><br><a href="http://www.absolut.vn.ua/" 
target="_blank" title="минеральные воды">минеральные воды</a></div></div></div>

您对如何找出它们的创建位置有什么建议吗?

它可能以某种方式被混淆了?

谢谢

【问题讨论】:

  • 可能被黑客入侵.. 可能是在页面加载后注入此 html 的脚本..
  • 也可以是浏览器插件。一些 Chrome 扩展程序喜欢插入您所看到的广告。
  • 它们实际上是在提供的 HTML 文档的源代码中,还是您通过某种 DOM 检查器(Firebug、Dragonfly 等)查看它?
  • 当我使用 Firebug 时它们会出现在那里。
  • 第一个 div 博客出现在 article_header 和 article_text 之间,第二个博客就在一个名为 pager pagenav 的类之后,如果它告诉你一些事情的话

标签: php javascript html css joomla


【解决方案1】:

对于那些有类似问题的人,我想提出一个彻底的解决方案。

二进制搜索工具,如“Text-Crawler”或“String Finder”(适用于 windows)很方便,然后在根文件夹中搜索“整个不需要的文本中最不常见的单词”。

接下来正如“Jevgeni Boga~”在上述答案中指出的那样,尝试搜索这些字符串的散列形式,可能是base64,hexadecimal,aasci。

现在,如果您仍然无法将确切代码归零,则很有可能隐藏代码是从数据库而不是文件中获取的,因此您的下一个搜索位置是您的数据库,它的安静容易通过“phpmyadmin”执行字符串搜索。

你需要做的就是去“phpmyadmin home”然后选择“你的数据库”然后选择“搜索”....

要搜索的词或值 :=>“注入代码中最不常见的词”

查找:=> 保留默认(至少一个单词)

Inside tables :=> 选择 全选 内栏:=> 留空..

现在,如果您的“不需要的代码”隐藏在数据库中,那么您很可能会找到它。

现在还有一种可能性,正如上面所说的那样,代码在页面加载后被某些脚本注入,你可以通过禁用浏览器中的 javascript 来确定不是这种情况...

还有很多其他的事情需要注意......比如检查代码是文本格式还是只是文本的图像......那么如果是这样的话,那么你必须寻找那个.jpg 或 .png 之类的文件...此外,还可以使用 "URLdata:image/png;base64" 方法从 CSS 中解析图像...

或者最后只搜索“iframe”标签,可能是来自其他来源的 iframe。

【讨论】:

    【解决方案2】:

    遇到同样的问题,但找到了解决方案。

    代码确实隐藏在template_name\html\com_content\article\default.php 下的模板中。文本是使用 base64 编码的,我有 2 个实例,1 个在文章之前,一个在结尾。使用的代码是:

    <?php  if (!$params->get('show_intro')) :
        echo $this->item->event->afterDisplayTitle;
    endif; ?><?php
    $mgp='PGRpdiBpZD0iamItYmYiPjxhIGhyZWY9Imh0dHA6Ly9tYWdpY2FsLXBsYWNlLnJ1LyIgdGFyZ2V0PSJfYmxhbmsiIHRpdGxlPSLQvtGC0LfRi9Cy0Ysg0YLRg9GA0LjRgdGC0L7QsiI+0L7RgtC30YvQstGLINGC0YPRgNC40YHRgtC+0LI8L2E+PGJyPjxhIGhyZWY9Imh0dHA6Ly9qb29tbGEtbWFzdGVyLm9yZy8iIHRhcmdldD0iX2JsYW5rIiB0aXRsZT0i0YDQsNGB0YjQuNGA0LXQvdC40Y8gSm9vbWxhIDMuNSI+0YDQsNGB0YjQuNGA0LXQvdC40Y8gSm9vbWxhIDMuNTwvYT48L2Rpdj4=';
    echo base64_decode($mgp);?>
    

    我只是从第二个中删除了代码

    <?php ~ through to ?>
    

    在两个链接中。

    【讨论】:

      【解决方案3】:

      如果您在网站的任何文档中都找不到“战地”一词,请尝试搜索(不带引号):

      "QmF0dGxlZmllbGQ=" (Base64 representation), 
      "426174746c656669656c64" (Hexademical representation),
      "&#66;&#97;&#116;&#116;&#108;&#101;&#102;&#105;&#101;&#108;&#100;" (ASCII).
      

      这些是最常见的编码方式。

      如果还是不行,那么手动定位代码:删除主模板文件中的小块代码(最常见的是 index.php )并观察是否不需要的链接在删除后消失了。如果确实如此 - 你已经找到了代码,那就是它的责任。

      【讨论】:

      • 感谢回复,可惜还是没有运气。。那我估计注射后得手动搜索
      • 我在 default.php 的 com_content 文件夹中发现了隐藏的注入。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-17
      相关资源
      最近更新 更多