我在我的php页面中发现了一些恶意代码,我知道正在使用混淆,但我从来没有在PHP中看到过类似的语法。
例1)
${"\x47LOB\x41\x4c\x53"}["\x76\x72vw\x65y\x70\x7an\x69\x70\x75"]="a";
例2)
${${"\x47\x4c\x4f\x42\x41LS"}["\x64\x77\x65\x6dbj\x63"]}="\x23d\x665";
所以问题是该代码的含义是什么,以及PHP如何处理它。我对这条线路的“$ {”充满好奇。
感谢。
答案 0 :(得分:4)
那是hexadecimal escape sequence。
\x47
对应G
,\x41
对应A
等。
您发布的代码转换为:
${"GLOBALS"}["vrvweypznipu"]="a";
和
${${"GLOBALS"}["dwembjc"]}="#df5";
${}
表示法通常用于variable variables。它允许您使用字符串访问命名变量。
答案 1 :(得分:0)
扩展Llama先生的答案,序列基本上是指PHP中的$ GLOBALS数组: http://php.net/manual/en/reserved.variables.globals.php
编辑:Llama先生现在扩大了他的答案,包括上述内容。