2014-09-30 54 views
2

我在我的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處理它。我對線路開始時的「$ {」大多很好奇。

謝謝。

+1

這是來自一個惡意的php webshel​​l最知名的c99madshell。 使用http://beta.phpformatter.com解碼。 – mak 2014-10-27 12:26:07

回答

4

這是一個hexadecimal escape sequence

\x47對應G\x41對應A

您發佈的代碼轉換爲:

${"GLOBALS"}["vrvweypznipu"]="a";

${${"GLOBALS"}["dwembjc"]}="#df5";

${}符號通常用於variable variables 。它允許你使用字符串訪問命名變量。

+0

所以這些行實際上產生相同的結果:echo $$ {a}; echo $$ a; echo $ {$ a};如果你將它賦值爲變量變量,有點鬆散的語法,謝謝你的快速回答。 – 2014-09-30 15:13:04