API安全漏洞挖掘指南:40种真实世界漏洞模型
API安全漏洞挖掘指南:40种真实世界漏洞模型
0x01什么是API?
我不太喜欢引用网上那些官方的描述,大家如果阅读到这篇文章不知道什么是API的话可以用AI查询一下。这里我就以我的理解跟大家聊了。API 本质就是“程序之间的接口”。比如我们做了一个同X交友APP我们需要显示当地的温度(天气服务)、约会地点的路线(地图服务)、餐厅的评价(大众点评的接口服务)。这些东西如果我们不想从0开发的话,我们就得用现成的。那么API服务就应用而生了,有的API负责给你提供地图、有的API负责给你提供天气。
举个例子:
说白了API就是专门帮我们做某一样事或者某几件事的接口。基本上我们小程序、web网站、app中都有无数的API接口。可以说我们现在的数字社会是由无数的API组成的。API他不管是19XX年的web1.0或者到如今的WEB4.0(AI网络入口)都是不可或缺的,比如最近流行的openclaw(龙虾)也是调用这各种各样的API接口。
可以说我们整个网络社会中API都是不可获取的一部分。

0x02API安全都有些什么
阅读完不知道大家是什么感觉,是不是有种都是中文汉字但是就是看不懂的感觉。哈哈。大师在这里以大师的理解给大家结合一些我们都知道的漏洞类型来给大家做一个详细解释。
API1:失效的对象级别授权(用户层面越权漏洞)
简单理解
接口通过 对象ID来访问数据,但没有验证用户是否有权限访问这个对象。
攻击者只要修改 ID,就能查看或修改别人的数据。
接口:
攻击者请求:
GET/api/user/1002
如果返回了 另一个用户的数据,就是越权漏洞,说白了就是我们最常见的越权。
API2:身份认证失效
简单理解
系统的 登录、Token 或 Session 机制存在问题。
攻击者可以:
伪造身份
Token 可预测:
token=userid+timestamp
攻击者可以猜测:
token=1001_171000000
从而登录别人账号。
常见问题:
Token不过期
API3:过度的数据暴露(就是他给的比你要的多多了)
简单理解
接口返回的数据 比实际需要的多。
开发者把整个对象返回给前端,而不是只返回需要的字段。
接口:
虽然前端只显示用户名,但 攻击者仍然能看到所有字段。
常见暴露:
密码hash
API4:缺少资源限制和速率限制
简单理解
接口没有限制 请求频率或资源使用量。这个可以参考地图大师2022年发布的文章地图API漏洞怎么挖
攻击者可以:
暴力破解
登录接口:
POST /api/login
如果没有限制请求次数,攻击者可以:
每秒尝试1000个密码
常见问题:
短信验证码无限发送
API5:功能级授权失效
普通用户可以调用 管理员接口。
普通用户接口:
GET /api/user/info
管理员接口:
GET/api/admin/user/list
如果普通用户访问:
GET/api/admin/user/list
系统仍然返回数据,就是漏洞。
常见于:
后台管理接口
API6:批量赋值漏洞(我觉得这个名字容易引起很大的分歧,我觉得成为模糊测试参数更好点CAA永远的神)
接口允许用户 修改不该修改的字段。
攻击者可以直接在请求中加入隐藏字段。
正常请求:
POST /api/user/update
攻击者发送:
{
如果服务器直接更新数据库,就会产生漏洞。
常见被修改字段:
role
API7:安全配置错误(例如开启了不安全的HTTP方法)
简单理解
服务器或 API 配置不安全。
示例
服务器允许:
OPTIONS
这些方法可能被利用。
真实场景
常见问题:
Swagger接口公开
API8:注入漏洞(万物离不开注入漏洞)
简单理解
用户输入的数据被当作 代码或命令执行。
示例
SQL注入:
GET /api/user?id=1 OR 1=1
如果数据库执行:
SELECT * FROM users WHERE id=1 OR 1=1
这个大家应该没人不知道吧
攻击者就能获取所有数据。
常见注入类型
SQL注入
API9:资产管理不当(这个类型和挖洞无关,主要还是安全管理方面的)
简单理解
公司 不知道自己有多少API。
旧接口、测试接口、调试接口仍然对外开放。
示例
企业上线:
/api/v1
攻击者可能发现:
/api/v1/admin/delete_user
这是旧版本接口。
真实场景
常见问题:
旧版本API未下线
API10:日志和监控不足(这个类型和挖洞无关,主要还是安全管理方面的)
简单理解
系统没有记录安全日志。
攻击者入侵后 很难被发现。
示例
攻击者持续请求:
/api/user/1
爬取所有用户数据。
如果系统没有监控:
不会触发报警
企业可能 几个月后才发现数据泄露。
通过上面的“说人话”解释,大家可能恍然大悟。这不就是我平常挖的漏洞类型吗,owasp网站怎么写的这么复杂,哈哈。

0x03A地图大师总结的40种API安全漏洞

我按照我自己历史中挖SRC和渗透测试的经验,总结了大概六大类40种API相关的安全漏洞。肯定不能覆盖所有的API漏洞但是可以给大家做成一个CheckList挖洞过程中没有灵感的话可以翻出来看看。
我总结API漏洞大概分为六种:
1、认证类漏洞
一、认证类漏洞
这类漏洞主要影响 用户身份验证。
1 Token 可预测(这个之前带大家打过类似靶场)
例如:
token = userid + timestamp
攻击者可以猜测 Token。
2 Token 永不过期(这个渗透中比较常见,但是得配合其他漏洞拿到token)
Token 长期有效:
Authorization: Bearer returnwrong i love you
即使用户退出登录仍然可以使用。
3 Token 未绑定设备
Token 可以在不同设备上使用。
例如:
手机登录获取token
4 Token 泄露(HaE永远的神,该漏洞可以配合上面的token永不过期)
Token 出现在:
URL
攻击者可以直接复用。
5 验证码缺失或弱验证(比如没有图形验证码,或者验证码失效,这个讲过太多次了)
例如:
登录接口没有验证码
6 OAuth 配置错误
例如:
redirect_uri 未校验
可能导致账户接管。
7 API Key 暴露(地图API最明显的案例)
例如:
JS 文件中包含 API Key
攻击者直接调用接口。
二、授权类漏洞
这是 API漏洞最多的一类。
8 越权(用户身份越权=对象级越权)
接口:
GET/api/order/1001
修改:
GET/api/order/1002
读取别人订单。
9 水平越权
用户访问其他用户资源。
例如:
GET /api/user/profile?id=1002
10 垂直越权
普通用户调用管理员接口。
例如:
GET /api/admin/users
11 功能级越权(其实大家理解成垂直越权就行)
调用不属于当前角色的功能。
例如:
DELETE /api/admin/delete_user
12 接口隐藏但未鉴权(未授权,findsomething+hae+caa)
接口存在:
/api/internal/export
但未做权限控制。
13 多角色权限错误(渗透的时候经常有权限瞎设置的各种账号)
例如:
管理员
角色判断逻辑错误。
三、数据暴露类漏洞
接口返回 过多敏感数据。
14 过度数据暴露(前端只显示昵称,但是返回的json里带了很多敏感信息)
返回对象所有字段:
password_hash
15 敏感字段泄露(从api 监测设备里看到的漏洞分类)
例如:
地图大师的手机号
16 调试信息暴露(从api 监测设备里看到的漏洞分类)
接口返回:
SQL语句
17 API文档暴露(swagger无需多说)
例如:
/swagger
攻击者可查看全部接口。
18 内部接口暴露(还记得harbor吗?)
例如:
/api/internal/debug
四、参数逻辑漏洞
这类漏洞 SRC非常常见,说白了逻辑漏洞就是玩接口的艺术。
19 参数篡改(下面的案例是支付漏洞)
例如:
price=1
改成:
price=0.01
20 数值边界漏洞(负数购买)
例如:
amount=-1
导致逻辑错误。
21 状态绕过(步骤跳过漏洞)
例如订单流程:
create → pay → deliver
攻击者直接调用:
deliver
22 重放攻击(并发的小弟)
重复提交请求:
POST /api/pay
多次执行。
23 批量接口漏洞
接口支持:
原始数据包只有1001但是通过加其他id看到了其他用户数据
{
可能读取大量数据。
24 批量赋值漏洞(当做fuzz参数的漏洞即可)
请求:
{
攻击者加入:
role=admin
25 JSON结构绕过(此处举例一个越权)
例如:
{
攻击者构造:
"user.id":1002
五、资源滥用漏洞
接口没有限制请求。
26 暴力破解
例如:
POST /api/login
无限尝试密码。
27 验证码刷接口(轰炸)
例如:
POST /api/send_sms
无限发送。
28 批量注册(任意用户注册)
例如:
POST /api/register
无限注册账号。
29 数据批量爬取(薅羊毛)
例如:
/api/users?page=1
爬取所有用户。
30 文件上传(传统漏洞凑个数)
接口:
POST /api/upload
可以上传恶意文件。
六、攻击面漏洞
这类漏洞属于 扩展攻击面,平时测试过的api尽量保存成字典fuzz的时候方便使用。
31 未公开API(敏感接口泄露)
JS中发现:
/api/internal/export
32 历史版本API(最典型的案例swagger)
例如:
/api/v1
旧版本仍然存在。
33 测试接口
例如:
/api/test
34 调试接口
例如:
/api/debug
35 管理后台API
例如:
/api/admin
36 APP专用API
移动端接口:
/api/mobile/*
37 WebSocket API
例如:
ws://ditusec.com.com/ws
可能未鉴权。
38 GraphQL接口漏洞
例如:
/graphql
可能允许:
Introspection
39 Swagger未授权访问
例如:
/swagger-ui.html
40 API网关绕过
例如:
/api
绕过安全策略。
0x04尾声

其实通读全篇大家会意识到很多漏洞我们之前都见过,或者都挖过。今天这篇文章的目的也不是让大家学习到新的漏洞。而是想让大家站在API安全的角度来看我们以前挖到的漏洞。以这些漏洞为基础,看看能不能找到新的API漏洞类型。或者当成一个checklist在自己挖洞换换脑子的时候,回来看看是不是有的店还没测试到。
学习资源
如果你是也准备转行学习网络安全(黑客)或者正在学习,这里开源一份360智榜样学习中心独家出品《网络攻防知识库》,希望能够帮助到你
知识库由360智榜样学习中心独家打造出品,旨在帮助网络安全从业者或兴趣爱好者零基础快速入门提升实战能力,熟练掌握基础攻防到深度对抗。
读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)

一、知识库价值
深度: 本知识库超越常规工具手册,深入剖析攻击技术的底层原理与高级防御策略,并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等,提供了独到的技术视角和实战验证过的对抗方案。
广度: 面向企业安全建设的核心场景(渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营),本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点,是应对复杂攻防挑战的实用指南。
实战性: 知识库内容源于真实攻防对抗和大型演练实践,通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。
二、 部分核心内容展示
360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。
内容组织紧密结合攻防场景,辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合,是你学习过程中好帮手。
1、网络安全意识

2、Linux操作系统

3、WEB架构基础与HTTP协议

4、Web渗透测试

5、渗透测试案例分享

6、渗透测试实战技巧

7、攻防对战实战

8、CTF之MISC实战讲解

三、适合学习的人群
基础适配人群
- 零基础转型者:适合计算机零基础但愿意系统学习的人群,资料覆盖从网络协议、操作系统到渗透测试的完整知识链;
- 开发/运维人员:具备编程或运维基础者可通过资料快速掌握安全防护与漏洞修复技能,实现职业方向拓展或者转行就业;
- 应届毕业生:计算机相关专业学生可通过资料构建完整的网络安全知识体系,缩短企业用人适应期;
能力提升适配
1、技术爱好者:适合对攻防技术有强烈兴趣,希望掌握漏洞挖掘、渗透测试等实战技能的学习者;
2、安全从业者:帮助初级安全工程师系统化提升Web安全、逆向工程等专项能力;
3、合规需求者:包含等保规范、安全策略制定等内容,适合需要应对合规审计的企业人员;
因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以在下方CSDN官方认证二维码免费领取【保证100%免费】
;
因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以在下方CSDN官方认证二维码免费领取【保证100%免费】

文章来自网上,侵权请联系博主
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)