怎么排查网站漏洞
去年帮朋友收拾一个被挂马的排查电商站,数据库被拖了三次,网站每次清完隔周又中招。漏洞最后发现漏洞入口居然是排查个三年前就没人维护的旧插件,后台登录页连验证码都没有,网站爆破一次只要十分钟。漏洞这件事让我明白,排查排查漏洞不是网站拿着扫描器乱扫,得按攻击者的漏洞思路走。
先从入口看起。排查凡是网站能让用户输入数据的地方都是嫌疑点——搜索框、留言板、漏洞上传头像、排查甚至URL里的网站参数。我习惯先抓包看请求,漏洞如果服务器返回的响应里直接拼了输入内容,那大概率有反射型XSS。试试输入
<script>alert(1)</script>,弹窗了就说明过滤形同虚设。SQL注入更隐蔽,在参数后面加个单引号看报错,或者用sleep(5)测时间延迟。别小看这些基础动作,很多大站就是栽在这种低级失误上。登录机制是重灾区。很多人以为密码设得复杂就安全,但攻击者根本不硬猜。他们先试默认账号,admin、test、root这些,再试弱口令。我见过一个后台,密码是admin123,验证码还是前端生成的,用Postman直接绕过。检查时重点看三件事:登录是否限流、会话是否固定、验证码是否服务端校验。另外翻翻Cookie的HttpOnly和Secure标志,这两个属性没设好,窃取会话就跟喝水一样容易。
文件上传功能是另一个坑。攻击者传个伪装成图片的PHP脚本,如果服务器没检查文件头,直接就能拿到webshell。测试时先用记事本写个
<?php phpinfo();?>,后缀改成.jpg上传,再访问看能不能执行。能跑起来就说明上传校验形同虚设。别只测图片格式,压缩包、PDF、SVG这些都可能藏雷。我甚至见过有人把木马藏在Excel宏里传上去的。权限配置漏洞常常被忽略。有些站目录权限全开,或者备份文件放在web根目录下。用搜索引擎搜
site:target.com filetype:sql,能直接找到数据库备份的都不在少数。检查时看几个关键目录——/uploads、/backup、/temp,这些地方不该有执行权限。还有编辑器后台,很多CMS的编辑器都有历史漏洞,比如FCKEditor的文件上传漏洞,十年前的东西到现在还有人在用。第三方组件是最容易出问题的环节。一个站可能用了十几个开源库,每个都可能带漏洞。排查时先看版本号,去CVE库比对有没有已知漏洞。比如某个版本的Apache Shiro有反序列化漏洞,如果站里用了这个版本,基本等于裸奔。我习惯用
whatweb或wappalyzer先探测技术栈,再针对性查漏洞库。别嫌麻烦,这比盲扫高效十倍。还有那些被遗忘的角落。测试环境、开发环境、老接口,这些往往没有安全防护。我见过一个站,主站防护得铁桶一样,结果测试子域名挂在同一台服务器上,直接通过测试站打穿了生产环境。排查时记得把子域名、旁站都翻一遍,特别是那些没人维护的老页面。
日志分析能帮你发现已经发生的入侵。重点看认证失败记录、异常文件上传、以及非工作时间段的访问。如果有大量401状态码,说明有人在爆破;如果某个文件突然被频繁访问,可能已经被人拿了webshell。我习惯用grep命令配合awk来筛选异常IP和URL,虽然原始但很管用。
最后说个实在的——别过度依赖自动化工具。AWVS、Nessus这些扫描器能帮你发现已知漏洞,但逻辑漏洞和业务漏洞它们根本扫不出来。比如越权访问、支付金额篡改、验证码重放,这些得靠手工测试。工具只是辅助,真正的排查靠的是对业务逻辑的理解和对攻击手法的熟悉。
排查完记得做三件事:把所有漏洞按危害程度排序,能立刻修的别拖;修复后重新测一遍,确认没被绕过;最后写份报告,把漏洞成因和修复方案都记录下来。我见过太多人修完就完事,结果三个月后又被人用同样的手法打穿——漏洞排查不是一次性工作,是持续对抗的过程。
顶: 7577踩: 8






评论专区