我可以在屏幕上显示部分内容的URL中注入php代码吗?

时间:2017-07-11 20:35:59

标签: php security inject exploit

嘿,这是我非常简单的代码:

<VirtualHost *:443>

我在网址上写道:

<?php
$test= $_GET['test'];
echo $test;

?>

为什么不执行命令,为什么不显示?

2 个答案:

答案 0 :(得分:3)

您通过URL传递字符串,echo不会执行字符串。你需要写:

&#xA;&#xA;
  eval($ test)&#xA;  
&#xA;&#xA;

执行它。所以你当前的代码不能执行PHP代码,但它可以用来执行JS代码。您应该过滤它。

&#xA;&#xA;

查看有关过滤器的文档,了解有关过滤的更多信息: http://php.net/manual/en/intro.filter.php 。您也可以使用这样的库: https://github.com/ircmaxell/filterus 。如果您正在使用某个框架,请检查集成的过滤功能/方法。

&#xA;

答案 1 :(得分:0)

您将该命令作为URL中的字符串传递。此外,您只需回复&#34;回声&#34;屏幕上的字符串。虽然echo可以包含可以运行的转义的php代码,但您可能想要评估并运行命令。

要实际运行该命令,您可以使用以下任一命令:

请务必阅读safe-mode-exec的文档。 特别是以下几点:

  

safe_mode_exec_dir string如果PHP用于安全模式,system()和   执行系统程序的其他函数拒绝启动程序   不在此目录中。你必须使用/作为目录   包括Windows在内的所有环境中的分隔符。