php代码执行攻击 启明星辰

时间:2026-10-17 05:05:28 来源:力不从心网

php代码执行攻击,码执明星说白了就是行攻攻击者把恶意php代码塞进你的服务器,让它替你跑。击启启明星辰的码执明星应急响应团队处理过太多这种案子,我直接说一个印象深的行攻——某电商平台,凌晨三点,击启数据库被拖库,码执明星二十万条用户信息挂在暗网叫卖。行攻事后分析,击启根子就在一个上传图片的码执明星功能上,攻击者把文件名改成了“avatar.php.jpg”,行攻服务器端只校验了后缀,击启没校验文件内容,码执明星结果php解析器认了前半截,行攻直接执行了。击启

这类漏洞的本质,是php的灵活性和服务器配置的疏忽撞在了一起。php允许变量直接来自请求参数,比如?cmd=system('ls'),如果代码里写了eval($_GET['cmd']),那等于把服务器大门钥匙挂在了门口。更隐蔽的是,很多框架用preg_replace加/e修饰符,老版本php会执行替换后的字符串,这种坑,新手踩了都不知道怎么死的。

启明星辰的处置流程,我见过几次,第一步不是打补丁,是隔离。先把被攻陷的机器从内网摘出去,断掉横向移动的路。然后翻日志,找攻击链——从哪个入口进来的,用了什么payload,有没有留下webshell。有一次排查,发现攻击者把后门藏在php的session文件里,文件名随机,内容加密,常规扫描根本扫不出来。最后还是靠比对文件时间戳和访问日志,才揪出来。

说句实在话,很多人觉得装了waf就万事大吉。但waf只能挡已知特征,攻击者换个编码方式,或者用php的create_function加匿名函数,waf就瞎了。真正的防护得靠代码层——禁用危险函数,用disable_functions把system、exec、shell_exec全禁了,输入过滤做到白名单而不是黑名单,上传目录禁止执行脚本,这些基础工事不做好,安全设备堆再多也是摆设。

还有个细节容易被忽略——php版本。很多公司还在跑php5.3,那都是十年前的玩意儿了,漏洞一抓一大把。启明星辰的报告里写过,某政府网站被植入挖矿脚本,就是因为服务器php版本太老,攻击者用了一个2015年的老漏洞,一分钟就进去了。升级到php7以上,很多函数行为变了,至少能挡掉一半老套路。

最后说个实战中的判断方法。当你怀疑服务器被php代码执行攻击了,别急着重启,先看进程列表,有没有奇怪的php进程在跑外连。再查/tmp目录,攻击者喜欢往这扔临时脚本。然后翻.bash_history,看有没有人手动执行过下载命令。这些动作,比跑一遍扫描器靠谱得多。毕竟攻击者也是人,会留下指纹,关键是你得知道去哪儿看。

推荐内容