游客发表

漏洞评估

发帖时间:2026-10-17 04:59:36

去年秋天,漏洞评估我帮一家做跨境电商的漏洞评估朋友看他们刚上线的支付系统。代码仓库里有个文件夹叫“temp_fix”,漏洞评估里面躺着十几个没合并的漏洞评估补丁,其中一个直接写死了数据库密码。漏洞评估他们觉得“反正内网访问,漏洞评估问题不大”。漏洞评估三个月后,漏洞评估有人从一台暴露在公网的漏洞评估测试服务器跳进来,把用户订单表拖走了。漏洞评估事后复盘,漏洞评估那个写死的漏洞评估密码就是最短的那块木板。

漏洞评估不是漏洞评估拿个扫描器跑一遍就完事。扫描器能告诉你“这里有个CVE-2023-1234”,漏洞评估但它不会告诉你这个漏洞在业务逻辑里能不能被利用。漏洞评估比如一个反射型XSS,在普通页面可能只是弹个窗,但在管理员后台的审核界面,它就能偷走session。你得看上下文。我见过一个团队把高危漏洞修了,却漏掉一个“低危”的开放重定向——攻击者用它配合OAuth流程,照样拿到了token。

做评估的人得有点“恶意”。坐在工位上对着报告打勾很容易,难的是想:如果我要搞垮这个系统,会从哪下手?去年某银行APP的漏洞报告里,有个“信息泄露”被标为中危,原因是接口返回了用户手机号的前三位和后四位。单独看确实不严重,但结合另一个“用户枚举”漏洞——登录时错误提示区分“用户不存在”和“密码错误”——攻击者就能批量确认哪些手机号是真实用户。两个中危拼起来,就是一次精准的短信轰炸或社工攻击。

工具很重要,但别迷信工具。Burp Suite的主动扫描能发现SQL注入,可如果参数是加密传输的,它就瞎了。这时候得手动抓包、解密、改包。我习惯在评估前先问开发要接口文档和加密逻辑,不然连请求都构造不出来。还有一次,目标系统用了GraphQL,扫描器完全找不到注入点,因为所有查询都走一个POST端点。最后是靠手动构造嵌套查询,在某个resolver里挖出了越权。

修复建议别写“请升级到最新版本”这种废话。开发看完只会翻白眼。要具体到文件、行号、改法。比如“在UserController.java第87行,把String sql = "SELECT * FROM users WHERE id = " + id;改成PreparedStatement”。如果实在改不了,就给临时缓解措施:WAF规则、网络隔离、监控告警。我见过一个老系统,没法升级Struts2,最后是在WAF上加了条规则,拦截所有带%{ 的请求,撑了半年直到重构完成。

最后说个反直觉的事:漏洞评估报告里最危险的不是“高危”那一栏,而是“无法评估”和“信息不足”。某个内部服务没有文档,开发离职了,端口开着但不知道跑什么。这种盲区才是定时炸弹。我现在的习惯是,每份报告末尾附一张“未知资产清单”,逼着甲方去填。填不上来的,就默认它随时会炸。

评估做完不是终点。三个月后得回头看,那些“已修复”的漏洞是不是真的修了,还是只是把扫描器规则屏蔽了。有个客户把SQL注入的报错页面改成了自定义404,扫描器确实不报了,但注入点还在。这种自欺欺人的事,干这行见得太多了。

    热门排行

    友情链接