【问题标题】:Executing HTML encoded PHP code执行 HTML 编码的 PHP 代码
【发布时间】:2015-04-28 01:12:39
【问题描述】:

你好 stackoverflow 社区,

我正在尝试从 Burp Suite 发送请求:

{"html":"<?php
$to = "example@example.com";
$subject = "Subject";
$txt = "PHP is installed"; 
$result = mail($to,$subject,$txt);
?>","author":"","location":""}

我需要修改“html”标签以包含一些 PHP,但是由于代码中的双引号(我认为),PHP 没有被读取(其他标签也没有)所以我尝试了 HTML 编码它但随后它不会执行,它只是显示为代码的纯文本。

我整天都在想办法解决这个问题,但什么也没找到。

因此,总而言之:我可以使用引号以外的任何替代方法吗? (我试过HEREDOC)或者有没有办法执行不带引号的HTML编码的PHP?

【问题讨论】:

  • PHP 在我们的 HTML 之外应该可以正常执行。它在读取 HTML 之前执行。尝试将您的 PHP 块更改为 &lt;?php echo 'it works';?&gt;

标签: php html encode


【解决方案1】:

你可以做到这一点,但我不建议这样做。

如果您删除 PHP 标记并传递您想要作为字符串运行的代码,您最终将不得不通过 eval() 运行它,这很危险,因为这意味着任何人都可以访问第一个脚本可能会在您的服务器上执行他们喜欢的任何代码。任何带有 'eval()' 的 PHP 脚本都需要被完全锁定。

参考:

http://php.net/manual/en/function.eval.php

你最好只传递你希望它执行的脚本的 URL,或者类似的东西:)

【讨论】:

    【解决方案2】:

    双引号不是问题。文件扩展名可能不是发送到 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."; ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-02
      • 2013-12-14
      • 2015-10-11
      相关资源
      最近更新 更多