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

相关推荐
2501_915921434 小时前
没有 iOS 源码的前提下如何进行应用混淆,源码混淆失效后的替代
android·ios·小程序·https·uni-app·iphone·webview
计算机毕设指导67 小时前
基于微信小程序的扶贫助农系统【源码文末联系】
java·spring boot·后端·微信小程序·小程序·tomcat·maven
会员源码网8 小时前
最新壁纸头像小程序系统源码 制作头像的软件 头像壁纸软件 带流量主
小程序
2501_915106328 小时前
Perfdog 成本变高之后,Windows 上还能怎么做 iOS APP 性能测试
android·ios·小程序·https·uni-app·iphone·webview
2501_915106329 小时前
iOS 安装了证书,HTTPS 还是抓不到
android·网络协议·ios·小程序·https·uni-app·iphone
万岳软件开发小城10 小时前
医院APP/小程序开发实战:基于互联网医院系统源码的完整落地流程
小程序·互联网医院系统源码·医院小程序开发·医院app开发·医院软件开发
小光学长10 小时前
基于微信小程序的评奖评优系统51r12nd0(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·微信小程序·小程序
Jenna的海糖10 小时前
检查微信小程序版本更新,手动更新
微信小程序·小程序
2501_9160074711 小时前
iOS 自动化上架的工具组合,在多平台环境中实现稳定发布
android·运维·ios·小程序·uni-app·自动化·iphone
1024小神11 小时前
uniapp项目中使用vue3和小程序组件父子通信
前端·小程序·uni-app