日志里大量 POST 请求:爆破还是业务
发布时间:2026-01-21 21:35       
更新时间:2026-01-22 08:15
日志里突然冒出大量 POST 请求,先看打在哪个路径上,再看频率和来源分布,登录爆破和正常业务在日志里的长相差别明显。
看路径定性质
POST 打在 /wp-login.php、/admin/login、/api/login 这类登录接口,状态码成片的 401、403,后面没有正常页面跳转,基本是爆破。正常业务的 POST(下单、提交表单)通常返回 200,同一会话里带有前后页面的请求做伴。还有一类打向 /xmlrpc.php 或接口网关,参数又长又随机,多半在探测漏洞。登录接口之外,注册、找回密码这类接口同样是爆破目标,日志里挨个过一遍;把登录请求单独切出来建一份日志,与普通业务分开统计,长期监控更方便。状态码分布一条命令看清:
awk '{print $9}' access.log | sort | uniq -c | sort -rn
爆破时段 401 会异常突出。
看频率与来源
统计 POST 的来源分布:
awk '$6=="POST" {print $1}' access.log | sort | uniq -c | sort -rn | head
单一 IP 每秒几十次登录请求,机器行为无疑;分散 IP 各自请求几次,是低速分布式爆破,更要靠频控和锁定策略对付。按小时切片找出集中时段再细看:
awk '{print substr($4,14,2)}' access.log | sort | uniq -c
请求间隔的均匀度也是信号,正常用户有波动,脚本的间隔基本恒定。来源按网段聚合一下看,同一运营商网段高频出现的,特征更明显。
SSH 爆破单独看
Web 日志之外,SSH 爆破看系统日志:
grep 'Failed password' /var/log/secure | wc -l
Ubuntu 对应的文件是 /var/log/auth.log。日志里 Accepted password 的陌生来源比失败更危险,出现就立即处理。关密码登录之前,先确认密钥能正常登录,顺序反了会把自己锁在门外。
确认爆破后的动作
登录口加验证码和失败锁定,连续五次失败锁定半小时;自动封禁工具按日志频率封 IP,省去手动盯守;SSH 关闭密码登录改用密钥;后台路径不对外公开,必要时限制来源 IP。改完观察一天日志,确认同类请求消失。爆破本身危害有限,跟着爆破成功的登录才是大麻烦,堵入口要趁早。后台账号逐个轮换密码,被爆破命中的口令一律当作已泄露处理;定期把从发现到封禁的全流程走一遍,真出事时才不慌。