【WEB】WebShell代码分析溯源(第4题)

【WEB】WebShell代码分析溯源(第4题)

查看到可以webshell后定位到源代码:

【WEB】WebShell代码分析溯源(第4题)

 

这个的用法:

get网址中传入 ?e=YXNzZXJ0   (arrest的base64加密值为YXNzZXJ0)

菜刀连接用法: http://www.xxx.com/3.php?e=YXNzZXJ0

密码:POST

详解:base64_decode()函数主要用于base64的解码,YXNzZXJ0的base64解码后的结果为assert,e接受浏览器传过来的参数,e接受浏览器传过来的参数,arr是个数组,array_filter()函数用回调函数过滤数组中的值,

【WEB】WebShell代码分析溯源(第4题)

如果我们传入$e的参数为YXNzZXJ0,这样的话我们的回调函数名就是assert,并且要过滤数组中的每一个参数

就构成了assert($_POST['POST']),常见的一句话木马,直接用菜刀链接即可

也就是说array_filter()回调函数,原型为:

array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )

           依次将 array 数组中的每个值传递到 callback 函数。如果 callback 函数返回 true,则 array 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。