PHP一句话木马免杀方式汇总

目录

PHP一句话木马免杀学习

一句话木马的变形

1.相同功能函数替换

2.使用变量

3.使用字符串拼接、大小写混淆、字符串逆序组合

4.自定义函数

5.回调函数

6.str_replace函数

7.base64_decode函数 (编码绕过)

8.parse_str函数

9.preg_replace 函数

10."."操作符

11.file_put_contents函数

12.通过PHP的动态函数


PHP一句话木马免杀学习

简单了解php一句话木马原理


首先存在一个名为shell的变量,shell的取值为HTTP的POST方式。Web服务器对shell取值以后,然后通过eval()函数执行shell里面的内容。

PHP一句话木马免杀方式汇总_第1张图片

一句话木马的变形

常用变形函数

convert_uudecode() #解码一个 uuencode 编码的字符串。
convert_uuencode() #使用 uuencode 编码一个字符串。
ucwords() #函数把字符串中每个单词的首字符转换为大写。
strrev () #反转字符串
trim() #函数从字符串的两端删除空白字符和其他预定义字符。
substr_replace() #函数把字符串的一部分替换为另一个字符串
substr() #函数返回字符串的一部分。
strtr() #函数转换字符串中特定的字符。
strtoupper() #函数把字符串转换为大写。
strtolower() #函数把字符串转换为小写。
implode()  #将一个一维数组的值转化为字符串。
str_rot13() #函数对字符串执行 ROT13 编码。


1.相同功能函数替换

例如使用assert函数。assert() 会检查指定的 assertion 并在结果为 FALSE 时采取适当的行动。如果 assertion 是字符串,它将会被 assert() 当做 PHP 代码来执行。



2.使用变量
使用变量函数$a,变量储存了函数名assert,便可以直接用变量替代函数名。



php可变变量

3.使用字符串拼接、大小写混淆、字符串逆序组合
使用大小写混淆配合字符串转小写函数strtolower组合而成



使用字符串拼接、大小写混淆、字符串逆序组合而成

4.自定义函数
create_function函数
把用户传递的数据生成一个函数fun(),然后再执行fun()


5.回调函数
回调函数可以调用其它函数,被调用的函数是回调的第一个函数,被调用的函数的参数是回调的第二个参数。这样的一个语句也可以完成一句话木马。

常见回调函数
call_user_func_array()
call_user_func()
array_filter() 
array_walk()  
array_map()
registregister_shutdown_function()
register_tick_function()
filter_var() 
filter_var_array() 
uasort() 
uksort() 
array_reduce()
array_walk() 
array_walk_recursive()


例如




6.str_replace函数
此函数作用是:在第三个参数中查找第一个参数,并替换成第二个参数。这里第二个参数为空字符串,就相当于删除“b”。


7.base64_decode函数 (编码绕过
base64解密函数,"ZXZhbA=="是eval的base64加密。


8.parse_str函数
执行这个函数后,生成一个变量$a,值为字符串"eval"


9.preg_replace 函数
preg_replace 函数一个参数是一个正则表达式,按照 php的格式,表达式在两个/之间,如果在表达式末尾加上一个 e,则第二个参数就会被当做 php代码执行。

10."."操作符

11.file_put_contents函数
利用函数生成木马
生成一个文件,第一个参数是文件名,第二个参数是文件的内容。
';
file_put_contents("shell.php", $test);
?>
12.通过PHP的动态函数

你可能感兴趣的:(php,开发语言,安全,web安全,网络)