网站后台密码暴力破解工具
去年冬天,网站一个做电商的后台朋友半夜给我打电话,说后台被刷了三千多单,密码全是暴力0.01元的测试商品。他以为是破解系统漏洞,结果查日志发现,工具攻击者用的网站是一个五年前就泄露的弱密码——admin123。对方没用什么高级0day,后台就是密码拿一个叫Hydra的小工具,对着登录接口跑了不到二十分钟。暴力
暴力破解这件事,破解比很多人想象的工具要朴素。它不靠什么精妙的网站代码注入,也不依赖浏览器漏洞。后台核心逻辑就一句话:拿字典里的密码密码,一条一条往登录框里塞,直到某条能进去。工具负责的就是把“手动尝试”变成“每秒上千次尝试”。
工具本身不神秘,字典才是命门
Hydra、Medusa、Burp Suite的Intruder模块,甚至自己写个Python脚本,都能干这活。Hydra支持HTTP、FTP、SSH、RDP等几十种协议,命令格式大概是这样:hydra -l admin -P pass.txt 192.168.1.1 http-post-form "/login:user=^USER^&pass=^PASS^:F=incorrect"。一行命令,指定用户名、密码字典、目标地址和失败特征,它就自己跑起来了。
但工具再顺手,没字典也是空转。我见过有人拿rockyou.txt(1400万条泄露密码)跑了一整夜,没出结果。也见过有人只用了200条针对性的密码——公司名+年份、admin@123、qwer1234——十分钟就进去了。差别不在工具,在你对目标的了解程度。知道对方是家2018年成立的小公司,字典里加上“公司缩写+2018”往往比几千万条通用密码管用。
后台登录为什么特别容易被打
很多网站的后台登录接口,压根没做频率限制。你输错一次,它返回“密码错误”;输错一万次,它还是返回“密码错误”。没有验证码,没有锁定,没有延迟。这种接口在攻击者眼里就是敞开的门。更糟的是,有些后台把用户名和密码的验证逻辑写在前端JavaScript里,抓包一看,密码明文躺在请求体里。这种连暴力破解都省了,直接看源码就知道密码规则。
我去年帮一个客户做安全巡检,发现他们的后台登录接口在连续请求500次后依然响应正常,平均响应时间37毫秒。这意味着单线程每秒能试27个密码,开十个线程就是270个。一个8位纯数字密码,空间是1亿种可能,理论上4天多就能穷举完。如果密码是常见单词加数字,字典命中率更高,可能几小时就结束。
防御不是加个验证码就完事
验证码能挡住纯自动化工具,但挡不住打码平台。真正有效的做法是组合拳:登录失败三次后强制延迟1秒,失败五次后锁定账户15分钟,同时记录IP和用户名到风控系统。如果同一个IP在十分钟内尝试了50个不同用户名,直接封IP段。这些策略不需要多复杂的技术,但能直接把暴力破解的成本从“几小时”拉到“几个月”。
还有个容易被忽略的点:后台路径别用默认的。/admin、/login、/wp-admin这些路径,扫描器一抓一个准。改成随机字符串,比如/console-8f3a2b,虽然不能根治,但能把大量无差别扫描挡在门外。我自己的服务器就这么干的,日志里每天几千次404,全是扫/admin的,真正后台一次都没被碰过。
最后说一句,暴力破解工具本身没有善恶。渗透测试人员用它评估系统强度,攻击者用它撞库。区别在于你有没有授权。我见过最离谱的案例,是一个运维把Hydra装在生产服务器上,想测试自己后台的强度,结果字典跑了一半,把CEO的账户锁了,全公司邮件系统瘫了两小时。工具没错,用工具的人得清楚自己在干什么。
```