PHP 锟斤拷哟锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷系统锟叫癸拷锟斤拷锟侥硷拷锟斤拷目录权锟睫的帮拷全锟斤拷锟狡★拷锟斤拷锟绞癸拷锟斤拷锟皆憋拷锟斤拷钥锟斤拷锟斤拷锟叫╋拷募锟斤拷锟斤拷募锟较低筹拷锟斤拷强啥锟斤拷摹锟斤拷锟斤拷锟斤拷乇锟阶拷锟斤拷锟斤拷全锟街的可讹拷锟侥硷拷锟斤拷锟斤拷确锟斤拷每一锟斤拷锟斤拷权锟睫碉拷锟矫伙拷锟斤拷锟斤拷些锟侥硷拷锟侥讹拷取锟斤拷锟斤拷锟斤拷锟角帮拷全锟侥★拷
PHP 锟斤拷锟斤拷锟轿拷锟斤拷没锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷募锟较低筹拷锟斤拷锟斤拷锟斤拷锟饺拷锌锟斤拷锟酵拷锟斤拷锟叫匆伙拷锟� PHP 锟斤拷锟斤拷锟斤拷锟斤拷取系统锟侥硷拷锟斤拷 /etc/passwd锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟皆硷拷锟斤拷锟酵达拷锟斤拷锟斤拷印锟斤拷锟斤拷鹊取锟斤拷锟剿憋拷锟斤拷确锟斤拷 PHP 锟斤拷锟斤拷锟饺★拷锟叫达拷锟斤拷锟角猴拷锟绞碉拷锟侥硷拷锟斤拷
锟诫看锟斤拷锟斤拷拇锟斤拷耄拷没锟斤拷锟揭撅拷锟斤拷约锟斤拷锟侥柯硷拷械锟揭伙拷锟斤拷募锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷通锟斤拷 web 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟侥硷拷系统锟斤拷锟斤拷锟� Apache 锟矫伙拷锟斤拷权删锟斤拷锟矫伙拷目录锟铰碉拷锟侥硷拷锟斤拷
Example #1 锟斤拷锟皆憋拷锟斤拷锟斤拷锟叫帮拷全锟斤拷锟结导锟斤拷......
<?php
// 锟斤拷锟矫伙拷目录锟斤拷删锟斤拷指锟斤拷锟斤拷锟侥硷拷
$username = $_POST['user_submitted_name'];
$userfile = $_POST['user_submitted_filename'];
$homedir = "/home/$username";
unlink ("$homedir/$userfile");
echo "The file has been deleted!";
?>
Example #2 ......锟侥硷拷系统锟斤拷锟斤拷
<?php
// 删锟斤拷硬锟斤拷锟斤拷锟轿猴拷 PHP 锟叫凤拷锟斤拷权锟睫碉拷锟侥硷拷锟斤拷锟斤拷锟� PHP 锟斤拷 root 权锟睫o拷
$username = $_POST['user_submitted_name']; // "../etc"
$userfile = $_POST['user_submitted_filename']; // "passwd"
$homedir = "/home/$username"; // "/home/../etc"
unlink("$homedir/$userfile"); // "/home/../etc/passwd"
echo "The file has been deleted!";
?>
Example #3 锟斤拷锟斤拷全锟斤拷锟侥硷拷锟斤拷锟斤拷锟�
<?php
// 删锟斤拷硬锟斤拷锟斤拷 PHP 锟斤拷权锟斤拷锟绞碉拷锟侥硷拷
$username = $_SERVER['REMOTE_USER']; // 使锟斤拷锟斤拷证锟斤拷锟斤拷
$userfile = basename($_POST['user_submitted_filename']);
$homedir = "/home/$username";
$filepath = "$homedir/$userfile";
if (file_exists($filepath) && unlink($filepath)) {
$logstring = "Deleted $filepath\n";
} else {
$logstring = "Failed to delete $filepath\n";
}
$fp = fopen("/home/logging/filedelete.log", "a");
fwrite ($fp, $logstring);
fclose($fp);
echo htmlentities($logstring, ENT_QUOTES);
?>
Example #4 锟斤拷锟斤拷全锟斤拷锟侥硷拷锟斤拷锟斤拷锟�
<?php
$username = $_SERVER['REMOTE_USER']; // 使锟斤拷锟斤拷证锟斤拷锟斤拷
$userfile = $_POST['user_submitted_filename'];
$homedir = "/home/$username";
$filepath = "$homedir/$userfile";
if (!ctype_alnum($username) || !preg_match('/^(?:[a-z0-9_-]|\.(?!\.))+$/iD', $userfile)) {
die("Bad username/filename");
}
//锟斤拷锟斤拷......
?>
锟斤拷锟捷诧拷锟斤拷系统锟侥诧拷同锟斤拷锟斤拷锟斤拷锟脚革拷锟街革拷锟斤拷锟斤拷要注锟斤拷锟斤拷募锟斤拷锟斤拷锟斤拷锟斤拷锟较碉拷锟较低筹拷锟斤拷璞革拷锟�/dev/ 锟斤拷锟斤拷 COM1锟斤拷锟斤拷锟斤拷锟斤拷锟侥硷拷锟斤拷/ect/ 锟侥硷拷锟斤拷 .ini锟侥硷拷锟斤拷锟斤拷锟斤拷锟矫的存储锟斤拷锟斤拷/home/ 锟斤拷锟斤拷 My Documents锟斤拷锟饺等★拷锟斤拷锟节达拷原锟津,斤拷锟斤拷一锟斤拷锟斤拷锟皆斤拷止锟斤拷锟斤拷权锟睫讹拷只锟斤拷锟斤拷锟斤拷确锟斤拷锟斤拷锟酵拷锟斤拷锟斤拷锟斤拷锟叫╋拷锟�