夜间无法登录: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. 参考工具

相关推荐
2601_9520137613 小时前
新麦同城到家预约上门小程序V3全开源版 vueadmin+unipp开源前端+小程序端
小程序
土土哥V_araolin15 小时前
双迪大健康模式系统开发
小程序·个人开发·零售
2501_9160074715 小时前
HTTPS 抓包的流程,代理抓包、设备数据线直连抓包、TCP 数据分析
网络协议·tcp/ip·ios·小程序·https·uni-app·iphone
css在哪里16 小时前
小程序版 Three.js 入门 Demo(完整可运行)
3d·小程序·threejs
游戏开发爱好者817 小时前
React Native iOS 代码如何加密,JS 打包 和 IPA 混淆
android·javascript·react native·ios·小程序·uni-app·iphone
CHU72903518 小时前
社区生鲜买菜小程序前端功能版块设计及玩法介绍
前端·小程序
2501_9159184118 小时前
iOS mobileprovision 描述文件管理,新建、下载和内容查看
android·ios·小程序·https·uni-app·iphone·webview
00后程序员张18 小时前
iOS 应用程序使用历史记录和耗能记录怎么查?
android·ios·小程序·https·uni-app·iphone·webview
吴声子夜歌19 小时前
小程序——WeUI组件
小程序
一只鹿鹿鹿21 小时前
网络安全风险评估报告如何写?(Word文件)
java·大数据·spring boot·安全·web安全·小程序