Hello stackoverflow社区,
我正在尝试从Burp Suite发送请求:
{"html":"<?php
$to = "example@example.com";
$subject = "Subject";
$txt = "PHP is installed";
$result = mail($to,$subject,$txt);
?>","author":"","location":""}
我需要修改&#34; html&#34;标签包含一些PHP,但PHP没有被读取(也没有任何其他标签)因为代码中的双引号(我认为)所以我尝试了HTML编码但是它不会执行,它只是显示为代码的纯文本。
我一整天都在努力弄清楚这一点并且找不到任何东西。
总而言之:我可以使用任何替代引号吗? (我试过HEREDOC)还是有办法在没有引号的情况下执行HTML编码的PHP?
答案 0 :(得分:0)
双引号不是问题所在。文件扩展名可能不是发送给PHP解释器的类型。
如果您正在使用Apache,则可以使用.htaccess指令解决此问题。
假设您刚刚发布的文件具有.json扩展名。然后.htaccess指令看起来像。
Options +ExecCGI
AddType application/x-httpd-php .php .json
AddHandler x-httpd-php5 .php .json
然而,你并没有回应任何事情。因此,完全有可能这不是问题,而只是说您的网络服务器没有配置电子邮件,因此它无法发送电子邮件。 (虽然在这种情况下它应该在大多数配置中回显错误。)
您可以通过使用以下内容进行测试,看看它是否有效:
<?php echo "This is working now."; ?>
答案 1 :(得分:0)
你可以做到这一点,但我不建议这样做。
如果删除PHP标记并传递要作为字符串运行的代码,则最终必须通过eval()运行它,这很危险,因为这意味着任何人都可以访问第一个脚本可以在服务器上执行他们喜欢的任何代码。任何带有'eval()'的PHP脚本都需要非常锁定。
参考:
http://php.net/manual/en/function.eval.php
你最好只传递你想要执行的脚本的URL,或者沿着这些行传递一些东西:)