80端口是端口漏洞HTTP协议的默认端口,几乎每个网站都在用它。端口漏洞但“默认”两个字,端口漏洞恰恰是端口漏洞最大的漏洞——不是协议本身的缺陷,而是端口漏洞运维人员的懒惰和惯性。我见过太多服务器,端口漏洞把Web服务直接挂在80端口上,端口漏洞连个像样的端口漏洞防火墙规则都没有,仿佛在门口贴了张纸条:“欢迎光临,端口漏洞密码是端口漏洞123456”。
去年帮一家小型电商公司做安全审计,端口漏洞他们的端口漏洞后台管理系统就暴露在80端口。登录页面没有任何加密,端口漏洞账号密码用明文传输。端口漏洞我随手抓了个包,端口漏洞管理员密码赫然在目——居然是“admin888”。这让我想起2017年的Equifax数据泄露事件,攻击者就是通过一个未打补丁的Apache Struts漏洞,从80端口长驱直入,最终窃取了1.43亿美国用户的敏感信息。大公司都栽在这上面,小公司更不必说。
80端口最经典的攻击手法是SQL注入。攻击者往URL里塞一段恶意代码,如果后端没有做参数过滤,数据库就会乖乖交出所有数据。2019年我测试过一家本地旅行社的订票系统,输入框里加个单引号,页面直接报错,数据库版本、表名全暴露了。更绝的是,他们的后台备份文件居然放在web根目录下,路径是/backup.zip——这不等于把家门钥匙放在门口脚垫下面吗?
还有一类漏洞容易被忽略:HTTP方法滥用。很多服务器默认开启PUT和DELETE方法,攻击者可以直接上传WebShell。我见过一个案例,攻击者用PUT方法往服务器上传了一个JSP文件,然后通过浏览器访问这个文件,就获得了服务器的完整控制权。整个过程不到五分钟,而这家公司直到被勒索软件加密了所有文件才发现问题。
别以为用了HTTPS就万事大吉。很多服务器同时开放80和443端口,但80端口只是做个跳转。问题在于,跳转逻辑如果没写好,就可能被用来做中间人攻击。攻击者先劫持80端口的流量,把用户引导到钓鱼页面,用户浑然不觉。更蠢的是有些管理员把敏感接口也暴露在80端口上,比如/api/admin,跳转规则只覆盖了首页,其他路径直接放行。
解决80端口漏洞,最有效的办法不是关掉它,而是用防火墙限制访问源IP。但很多中小企业根本没有专职安全人员,服务器上跑着老旧的Apache版本,补丁也不打。我认识一个运维朋友,他管理的服务器被扫描工具发现80端口存在CVE-2021-41773漏洞(Apache路径遍历),他居然说“先忙完手头的活再处理”。结果第二天,服务器就被挖矿程序入侵了。
说到底,80端口漏洞的本质是人的问题——懒得改配置,懒得打补丁,懒得做访问控制。技术工具再多,也抵不过一个“懒”字。如果你现在正管着服务器,建议立刻检查:80端口上跑的是什么服务?有没有做访问控制?日志里有没有异常请求?别等到被入侵了才后悔,那时候就晚了。