引言
我们发现,许多初学者乃至一些已有一定经验的师傅,在撰写漏洞报告时容易出现表述混乱、结构不清等问题,常常让甲方或漏洞审核人员看得一头雾水、难以理解。为此,本文将通过模板,手把手教你如何写出一份清晰、完整、专业的漏洞报告。
正文
报告标题主要为漏洞点、漏洞类型,可以选择添加漏洞危害。
报告结构主要包含漏洞概述、漏洞步骤、漏洞危害及修复建议,图文并茂且包含必要的请求体。
以下为模板示例。
《保险平台 API 加密接口存在 IDOR 漏洞》
一、漏洞概述
在对某活动注册保护服务进行安全测试时,发现该平台存在不安全的加密访问逻辑与IDOR(不安全直接对象引用)漏洞。攻击者可通过平台公开的API,将任意保单编号加密后作为访问凭证,直接下载他人保单PDF,并借助其中信息进一步接管用户账户,从而造成个人隐私泄露、账号被控及保单篡改等严重后果。
该漏洞的根本问题在于:加密值既可预测、又缺乏权限校验,被错误地当作“身份令牌”使用。
二、漏洞复现步骤
以下为漏洞的完整利用流程。
步骤1:通过 API 获取保单编号的加密值
平台公开了一个加密接口,可直接传入保单编号并获取其加密值:
GET /api/claims/encrypt?text=EUSP2386401065
响应示例:
{ "data": "BnmnNGD6EFL2Eeo85nTHA"}
该加密值将作为访问凭证使用。
以下为具体的请求与响应截图:
[图片1]
步骤2:使用加密值访问保单 PDF 文件
获取加密值后,可将其拼接到另一个接口中,直接访问保单 PDF:
GET /api/certificates/policies/BnmnNGD6EFL2Eeo85nTHA
响应为保单内容的 PDF 文件,包含如下敏感信息:
用户全名
出生日期
通讯地址
购买时间
保单编号及保额覆盖范围等
[图片2]步骤3:利用保单信息登录并接管用户账户
在登录页面中,选择“保单号 + 购买日期”作为身份验证方式,
即可凭借已获得的保单内容成功登录目标账户。
具体步骤如下:
1、输入保单号:
EUSP2386401065
2、输入购买日期:通过 PDF 获取
3、登录成功后,可查看或修改账户、取消保单
以下为具体的请求与响应截图:
[图片3]
如图,成功登录目标账户:
响应示例:
0
响应示例:
1
响应示例:
2
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...