yakit 漏洞导出:别让扫描结果烂在硬盘里
凌晨两点,洞导我盯着屏幕上 yakit 的洞导扫描结果,三百多条漏洞记录,洞导从 SQL 注入到 SSRF,洞导密密麻麻铺满表格。洞导老板明天要报告,洞导客户等着修复清单,洞导可这些数据还在工具里躺着——手动复制?洞导那得复制到天亮。yakit 的洞导漏洞导出功能,就是洞导干这个的。
先说最简单的洞导路子。yakit 的洞导 Web Fuzzer 和漏洞检测模块,结果页面右上角那个“导出”按钮,洞导点开就是洞导 JSON 和 CSV 两个选项。别小看 CSV,洞导它直接能扔进 Excel 里做透视表。我一般按“漏洞等级”排个序,把高危的标红,中危的标黄,低危的直接灰掉。导出之后用 Python 的 pandas 读一遍,几秒钟就能把数据按 URL、参数、payload 分好类。
但你要真拿它对付大项目,光靠界面导出不够用。yakit 的“漏洞引擎”跑完一轮,结果存在本地数据库里,路径一般是 ~/.yakit/projects/ 下的某个 .db 文件。这时候直接用 SQLite 连上去,写个查询语句,把 vuln_info 表里所有记录拉出来,再转成自己想要的格式。我写过一个小脚本,自动把高危漏洞按“域名+路径+参数”去重,直接生成给开发看的工单列表——比手工整理快十倍不止。
还有个坑得提醒你。yakit 导出 CSV 时,如果漏洞描述里带了英文逗号或者换行符,Excel 打开会错列。我吃过一次亏,导出后客户那边打开,整行数据全乱了。后来我都是先导出 JSON,再用 Python 的 csv 库重新处理一遍,加个引号转义,就稳了。
至于那些想写自动化报告的人,yakit 的 gRPC 接口也能调用。你可以在 Yak 脚本里直接调用 risk.ListRisk() 这个函数,把漏洞数据拉出来,然后自己拼 HTML 或者 Markdown。我见过有人拿它对接飞书机器人,扫描完自动推送消息到群里,漏洞列表直接贴在消息卡片上——那效果,比截图帅多了。
最后说点实在的。漏洞导出不是点个按钮就完事,你得想清楚导出来给谁看。给客户看的报告,别把 payload 和请求包原样贴上去,人家要的是“哪里有问题、怎么修”。给开发看的,就得带上复现步骤和请求响应,不然他们没法下手。yakit 导出时能勾选字段,我一般只保留 URL、漏洞类型、风险等级、修复建议这几列,其他全去掉——干净,才能让人愿意看。
工具是死的,人是活的。导出功能摆在那,用得好是效率翻倍,用得糙就是给自己挖坑。下次扫描完,先花五分钟想想数据流向哪,再动手点那个按钮。别让一堆漏洞记录烂在硬盘里,那才是真的浪费。