夜间无法登录:ThinkPHP api接口 23:00 准时罢工的排查全纪录

"夜间无法登录":ThinkPHP api接口 23:00 准时罢工的排查全纪录

> 关键词:ThinkPHP、小程序、23:00-07:00、登录失败、SEO 木马、str_rot13、后门

> 发生时间:2025-09-20 ~ 2025-11-26

> 脱敏域名:https://your-domain.com


该问题已经折磨4-5个月了,今天终于一个一个文件打开手动检查,终于发现了问题所在,不知道其他人有没有遇到这种其他问题。

1. 故障现象

时间段 表现
每天 23:00 整 ~ 次日 07:00 小程序登录接口 100% 超时,其余时间完全正常
同时间段 curl / Postman 返回正常 JSON,排除网络、证书、防火墙
服务器负载、内存、磁盘 均正常,无 502/503

结论 :问题不在网络、不在运维、不在代码逻辑,像"定时任务"一样神奇。


2. 初步排查(全部失败)

排查方向 结果
代码里是否写了 date('H') 限制 ❌ 全局搜索无时间判断
JWT token 过期/系统时间错乱 ❌ date 与 NTP 差距 < 1s
nginx 错误日志 ❌ 23:00 前后 无请求记录
云防火墙/WAF 定时策略 ❌ 关闭 WAF 后故障依旧
微信后台"夜间维护"配置 ❌ 无该功能

3. 转折点:curl 成功 vs 小程序失败

  • curl 始终 200 → 后端 正常
  • 真机 23:00 后失败 → 环境层被截流

于是怀疑 PHP 层代理/转发,全局搜关键字:

bash 复制代码
find /www/wwwroot/ -name "*.php" -mtime -7 \
  -exec grep -l "str_rot13\|onfr64_rapbqr" {} \; 

于是怀疑 PHP 层代理/转发,全局搜关键字:

可以看到,这段小马代码藏的很"深",本身这页代码没几行,回车到600多行才出现木马了,于是我进行base64转义,发现了下面的问题。
关键路径:/www/wwwroot/domain.com/thinkphp/start.php

php 复制代码
function function_tool(){
    $rot="str_rot13";
    $en=$rot("onfr64_rapbqr");
    ...
}

4. 木马行为解剖

解码后真相 作用
gmdate('G') 判断小时 06:00-23:00 只劫持 蜘蛛/手机 HTML
23:00-06:00 所有请求 被 file_get_contents 转发到远程博彩服务器
本地生成缓存 ./caches/xxx 目录,白天自动删除,毁灭痕迹

画成时间轴:

23:00 ─┐

├─ 用户 POST /api/login → 木马拦截 → 转发博彩站 → 返回空内容 → 小程序超时

07:00 ─┘

木马停止代理,接口恢复

5. 验证 & 复现

23:10 复制代码
23:10 同网络 curl → 成功(绕过了 UA 判断)
23:10 查看 access.log → 无记录(请求被木马吞掉)
删除木马文件 + 清缓存目录 → 23:15 再测 → 登录成功 ✅

6. 清除与加固

bash 复制代码
# 1. 备份证据
tar -zcf /tmp/backdoor_$(date +%F).tar.gz \
  $(find . -name "*.php" -exec grep -l "str_rot13" {} \;)
# 2. 删除木马
sed -i '/function function_tool/,/function_tool();/d' infected.php
# 3. 清缓存
rm -rf caches/*
# 4. 目录锁权限
chmod 555 caches
chattr +i caches   # 极端场景可加 immutable

7. 参考工具

相关推荐
m0_587383001 小时前
工业场景设备维修维护实战技巧 全流程标准化落地与常见问题排查指南
java·spring·小程序·架构·需求分析
m0_5873830020 小时前
深圳 24 小时自助健身房系统软件开发实战指南与案例解析
java·spring boot·小程序·架构·需求分析
2501_915909061 天前
iOS应用从开发到上架App Store的完整发布流程与步骤指南
android·ios·小程序·https·uni-app·webview
扶风ff1 天前
练题簿在线免费刷题:会员线下组卷、Word 试卷与成绩导入,课堂检测更方便
java·开发语言·算法·小程序·word
镭封1 天前
做电视剧解说视频用什么软件?配音、文案处理一次解决
人工智能·小程序·音视频·语音识别·媒体
闹小艾1 天前
制作题库练题小程序如何选择搭建平台?3大主流平台优缺点,新手选型不踩坑
小程序
小码哥0681 天前
陪诊小程序系统开发:开启医疗陪护新时代
小程序·陪诊·陪护·陪诊陪护·医院陪诊系统·陪诊系统·陪诊管理
扶风ff1 天前
练题簿在线免费刷题:创建个人任务,把刷题、听题和模考目标放到每天的学习中
开发语言·javascript·学习·小程序
andrsted1 天前
练题簿在线免费刷题:听读练题支持暂停续播、循环播放,让自己的题库听得更方便
学习·微信小程序·小程序·刷题·在线刷题