锟侥硷拷系统锟斤拷全

Table of Contents

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!";
?>
锟斤拷然 username 锟斤拷 filename 锟斤拷锟斤拷锟斤拷锟斤拷通锟斤拷锟矫伙拷锟斤拷锟斤拷锟结交锟斤拷锟角就匡拷锟斤拷锟结交锟斤拷锟剿碉拷锟矫伙拷锟斤拷锟斤拷锟侥硷拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷删锟斤拷锟斤拷锟斤拷锟斤拷应锟斤拷锟斤拷锟斤拷锟斤拷删锟斤拷锟斤拷锟侥硷拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷拢锟斤拷锟揭拷锟斤拷锟斤拷锟斤拷锟斤拷锟绞斤拷锟斤拷锟街わ拷锟斤拷锟斤拷肟达拷锟斤拷锟结交锟侥憋拷锟斤拷锟斤拷"../etc/"锟斤拷"passwd"锟结发锟斤拷什么锟斤拷锟斤拷锟斤拷拇锟斤拷锟酵碉拷同锟节o拷

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!";
?>
锟斤拷锟斤拷锟斤拷锟斤拷要锟斤拷施锟斤拷锟斤拷止锟斤拷锟斤拷锟斤拷锟解。
  • 只锟斤拷 PHP 锟斤拷 web 锟矫伙拷锟斤拷锟斤拷锟睫碉拷权锟睫★拷
  • 锟斤拷锟斤拷锟斤拷锟斤拷峤伙拷锟斤拷锟斤拷谋锟斤拷锟斤拷锟�
锟斤拷锟斤拷锟角改斤拷锟侥脚憋拷锟斤拷

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($logstringENT_QUOTES);
?>
然锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷然锟斤拷锟斤拷缺锟捷的★拷锟斤拷锟斤拷锟街は低筹拷锟斤拷锟斤拷没锟斤拷锟斤拷锟斤拷约锟斤拷牡锟铰硷拷没锟斤拷锟斤拷锟斤拷锟斤拷没锟窖★拷锟斤拷锟�"../etc/"锟斤拷为锟矫伙拷锟斤拷锟斤拷系统锟斤拷一锟斤拷锟斤拷锟斤拷锟剿★拷锟斤拷锟皆o拷锟斤拷要锟斤拷强锟斤拷椋�

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锟斤拷锟饺等★拷锟斤拷锟节达拷原锟津,斤拷锟斤拷一锟斤拷锟斤拷锟皆斤拷止锟斤拷锟斤拷权锟睫讹拷只锟斤拷锟斤拷锟斤拷确锟斤拷锟斤拷锟酵拷锟斤拷锟斤拷锟斤拷锟叫╋拷锟�