【问题标题】:Website Link Injection网站链接注入
【发布时间】:2011-01-11 02:25:42
【问题描述】:

我有一个相当静态的网站。它上面有一些表格可以发送联系信息、邮件列表提交等。也许在上传到网站几小时/几天后,我发现主索引页面中有新代码,我没有放在那里,其中包含隐藏的一堆链接在一个不可见的 div 中。

我有以下代码处理从表单发送的变量。

<?php
// PHP Mail Order to email@email.com w/ some error detection.

    $jamemail = "email@email.com";
    function check_input($data, $problem='')
        {
        $data = trim($data);
        $data = stripslashes($data);
        $data = htmlspecialchars($data);
        if ($problem && strlen($data) == 0)
            {
            die($problem);
            }
        return $data;
        }
    $email    = check_input($_POST['email'], "Please input email address.");
    $name    = check_input($_POST['name'], "Please input name.");

    mail($jamemail, "Mailing List Submission", "Name: " . $name . " Email: " .$email);
    header('Location: index.php');
?>

我在索引页面中有以下代码,用一些 Javascript 显示表单,以便在提交之前对提交的内容进行错误检测。

    <form action="sendlist.php" method="post" onSubmit="return checkmaill(this);">
        <label for="name"><strong>Name: </strong></label>
        <input type="text" name="name"/><br />
        <label for="email"><strong>Email: </strong></label>
        <input type="text" name="email"/><br />
                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="Subscribe" style="width: 100px;"/>
    </form>

归根结底,注入超链接的源码如下:

</body>

</html><!-- google --><font style="position: absolute;overflow: hidden;height: 0;width: 0">    
xeex172901
<a href=http://menorca.caeb.com/od9c2/xjdmy/onondaga.php>onondaga</a>
<a href=http://menorca.caeb.com/od9c2/xjdmy/tami.php>tami</a>
<a href=http://menorca.caeb.com/od9c2/xjdmy/shotguns.php>shotguns</a>
<a href=http://menorca.caeb.com/od9c2/xjdmy/weir.php>weir</a>
<a href=http://menorca.caeb.com/od9c2/xjdmy/copperhead.php>copperhead</a>
<a href=http://menorca.caeb.com/od9c2/xjdmy/mpv.php>mpv</a>
<a href=http://menorca.caeb.com/od9c2/xjdmy/brunei.php>brunei</a>
<a href=http://menorca.caeb.com/od9c2/xjdmy/doreen.php>doreen</a>

【问题讨论】:

  • 我认为 PHP 脚本中的任何内容都没有写入文件的能力 - 您确定您的服务器是安全的吗? (没有安全漏洞)。
  • 好吧,我自己不运行服务器,因为我们在 Hasweb 提供的托管包上运行网站。如果它继续发生,我将不得不发送一张票寻求帮助,看看服务器是否有问题。

标签: php scripting email hyperlink code-injection


【解决方案1】:

您的表单似乎不太可能与您的问题有关,更有可能是您的 ftp 信息已被泄露。假设您使用 ftp 将更改上传到您的网站...

【讨论】:

  • 该网站已经发生了 3 次链接注入。我手动删除了两次。之后我更改了 FTP 密码,但又发生了这种情况,我再次将其删除。除非有人能从我们的网站 cpanel 中检测到我正在做什么样的更改,否则应该已经涵盖了它。
  • 如果可以,请使用 sftp 而不是 ftp。顺便说一句,我有客户发生这种情况是因为他们的电脑被病毒感染了。更改密码显然没有任何效果。
  • 我们已将 FTP 协议更改为 SFTP,但仍然遇到同样的问题。
  • 尝试在另一台计算机上更改密码,看看是否真的是病毒。
【解决方案2】:

除非有人可以物理访问您的服务器,否则这里有一个缺失的部分。你确定这是唯一运行的服务器端代码吗?

您不需要发布请求即可受到攻击。 XSS 有各种形状和大小。

【讨论】:

  • 我在主站点上手写了所有内容。所以,是的,PHP 代码和其他两个类似的代码是唯一运行的 PHP。这些页面被分割成 header.php、index.php 和 footer.php,其中包含将它们组合在一起。唯一的其他 PHP 在子域中运行的 Wordpress 博客中。
【解决方案3】:

我建议你升级你的wordpress

我发现另一个站点仍然使用相同的注入代码 here,他们使用 wordpress 并且那里也有联系表。

顺便说一下,你给我们看的页面是重定向页面之后,漏洞可能在contact.php或wordpress中。

【讨论】:

  • 已升级。我们将看看从这里会发生什么。虽然我很困惑 Wordpress 是如何在一个单独的文件夹中并且没有它自己的问题是如何影响父目录中的文件的。
  • Wordpress 升级后我们仍然收到攻击。我不确定contact.php中的代码(发布在问题中)如何将任何代码插入到实际的index.php文件中。
  • contact.php有3个输入框,姓名、邮箱、评论,你发的那个没有评论框。我认为它是一个不同的页面。
  • 对不起,那是正确的。然而,该页面使用的代码以相同的方式建模,但扩展为发送一些额外的信息(即 cmets)。
【解决方案4】:

虚拟主机服务器被黑客入侵,而不是大规模污损 = 用“IPWND!U”替换索引,他们只是选择传播病毒并将 blackhad seo 用于他们控制的其他域,我建议您更改您的主机。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-12
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多