PHP代码注入。我们是否存在安全风险?

时间:2011-06-14 12:59:55

标签: php security exploit

我们有一个简单的php文件来捕获电子邮件。它将这些电子邮件丢弃到csv文件中(不能由php执行)。我们最近有人设法破解我们的网站,这似乎是一个切入点,但我不知道它是如何可能的。这是脚本:

$fh = fopen('cap.csv', 'a+');
fwrite($fh, "\r".$_GET['email']);
fclose($fh);

非常基本对吗?无论如何你可以想到利用这个吗?

4 个答案:

答案 0 :(得分:3)

是的,但可能不是您想要的。

我唯一能做的就是:

  1. 向您的文件添加任何内容,仅附加。
  2. (可选/奖金)如果您没有保护文件并直接窃取所有电子邮件地址,请直接打开文件。
  3. 它不允许我执行任何操作,也不允许我访问任何内容。 (除非你处理它并导致其他地方泄漏)。但仍然 - 让这个安全!

答案 1 :(得分:2)

您向我们展示的代码只能用于在csv文件中放置任何内容(我假设您不验证/验证$_GET['email']变量),但您无法注入和执行PHP代码方式。

也许你有一个适用于被利用的csv文件的脚本。

答案 2 :(得分:0)

我现在唯一可以想到的是给定代码是NullByte攻击向量(虽然我不确定它们是否在当前版本的PHP中工作,甚至适用于您的代码)。由于您使用$ _GET,因此任何通过eMail参数的攻击都应该在服务器的日志文件中可见。

检查日志文件中是否有可疑的电子邮件字符串,例如

之类的东西
http://example.com?email=foo\0somethingmalicious

和类似的事情。

答案 3 :(得分:0)

您发布的代码表明您对输入数据没有太多的清理。因此,您可能在软件的其他部分遇到类似的问题。

除此之外,即使您不在应用程序中执行csv文件,也可以在其中注入PHP代码。

因此,如果应用程序中有另一个漏洞没有正确检查输入数据,并且可能被利用来包含服务器上的文件,然后包含有问题的csv文件,则可以执行远程代码。