background image

甚至插入上传代码,让我们可以上传一个完善的 PHP 后门。接着提升权限,服务器就是你
的了。   

 
    2.漏洞解决:   

 
    这个漏洞的解决方法其实很简单,就是严格对全部提交的变量进行过滤。对一些敏感的
字符进行替换。我们可以借助 PHP 提供的 

 

htmlspecialchars()函数来替换 HTML 的内容。这里给出一段例子:   

 

//构造过滤函数   

function flt_tags($text)   

{  
  $badwords=array("操你妈","fuck"); //词汇过滤列表   
  $text=rtrim($text);  
  foreach($badwords as $badword) //这里进行词汇的过滤   
  {  
    if(stristr($text,$badword)==true){ die("错误:你提交的内容含有敏感字眼,请不要提交敏
感内容。"); }   
  }  
  $text=htmlspecialchars($text); //HTML 替换   
  //这两行把回车替换为   

 
  $text=str_replace("\r"," ",$text);   
  $text=str_replace("\n","",$text);  
  $text=str_replace("&line;","│",$text); //文本数据库分隔符"&line;"替换为全角的"│"  
  $text=preg_replace("/\s{ 2 }/"," ",$text); //空格替换   
  $text=preg_replace("/\t/"," ",$text); //还是空格替换   
  if(get_magic_quotes_gpc()){ $text=stripslashes($text); } //如果 magic_quotes 开启,则进行\'
的替换   
  return $text;   

}  

 

$text1=$_POST["text1"];  

$text2=$_POST["text2"];  

$text3=$_POST["text3"];  

 

//过滤全部输入   

$text1=flt_tags($text1);  

$text2=flt_tags($text2);  

$text3=flt_tags($text3);  

 

$fd=fopen("test.php","a");  

fwrite($fd,"\r\n$text1&line;$text2&line;$text3");