我们有一个简单的php文件来捕获电子邮件。它将这些电子邮件丢弃到csv文件中(不能由php执行)。我们最近有人设法破解我们的网站,这似乎是一个切入点,但我不知道它是如何可能的。这是脚本:
$fh = fopen('cap.csv', 'a+');
fwrite($fh, "\r".$_GET['email']);
fclose($fh);
非常基本对吗?无论如何你可以想到利用这个吗?
答案 0 :(得分: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文件,则可以执行远程代码。