如何使用$ _SERVER [' REQUEST_URI']注入PHP代码

时间:2014-08-12 21:49:04

标签: php exploit

以下来自php网页的内容让我觉得有些代码可以被利用。

# Maps a uri like questions/ask/index.php?anything=something to questions/ask/index.php
$path = substr($_SERVER['REQUEST_URI'], 0, strpos($_SERVER['REQUEST_URI'], "?"));

攻击者可以在请求uri中发送php语法来利用以下某个语句吗?如果是这样,你怎么避免这种情况?

变式1:

header('Location: http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'].'&tag='.$tags);

变体2:

<p>...<?php echo $path; ?>... </p>

1 个答案:

答案 0 :(得分:3)

回应PHP代码并不能让它运行。例如,尝试:

<?php 
$path = "echo 'hello';";
echo $path; 
?>

echo 'hello';不会被运行。

要成为一个真正的漏洞,应用必须使用eval()或类似的东西。

直接打印用户输入的真正问题是Javascript注入或跨站点脚本注入,而不是PHP注入。