前言
各位老铁,在这个API满天飞的时代,安全问题也像坐了火箭一样蹭蹭往上涨。今天咱们就来扒一扒那些常见的API漏洞,看完保证你直呼内行!
信息泄露:API界的“裸奔”
当API和它的好基友(支持软件)不小心把敏感信息透露给不该看的人时,就相当于在网络世界“裸奔”!这些信息可能藏在API的响应里,也可能在一些公开场合,比如代码仓库、搜索引擎、社交媒体等等。
啥是敏感数据? 简单说,就是任何能被黑客利用的信息,比如:
1)报错信息:像SQL报错、信息报错这种,简直就是给黑客送人头!
2)详细返回:告诉你“用户名不存在”、“密码错误”、“不存在id字段”? 简直是嫌黑客不够了解你!
怎么揪出“裸奔”的API?
就像福尔摩斯探案一样,多和API端点“互动互动”,分析它的响应。API响应的头部、参数、错误信息都可能泄露重要情报。还有API文档、侦察过程中收集的资源,都是有价值的信息来源。
对象级授权缺陷(水平越权):你竟然偷偷看了我的“小秘密”!
这玩意儿,简称BOLA,是API界的老油条了。当API提供商没能好好管住API用户的“爪子”,让用户能访问不属于自己的资源时,BOLA就出现了。
简单说,就是用户A竟然能偷偷摸摸地请求用户B的资源!
API用一些“暗号”(比如名称、数字)来识别不同的对象。一旦发现了这些“暗号”,就得赶紧测试一下,看看是不是能用别人的身份去访问别人的资源。
GET /api/resource/1;
如果资源ID是那种让人摸不着头脑的序列,就算有越权,我们也抓瞎。但是,如何判断资源ID是不是可以预测? 有些ID看起来是无序的,但仔细分析,你会发现它们其实暗藏玄机!
用户身份验证缺陷:谁允许你“假冒”我了?
用户身份验证缺陷,就是API身份验证过程中的各种漏洞。通常是API提供商没做好身份验证的保护工作。
API一般会要求用户注册,然后发一个“令牌”(Token),用户拿着令牌才能证明自己有权搞事情。所以,注册流程、令牌的处理、生成令牌的系统,都可能存在漏洞。
举个栗子: 评估令牌生成的过程是不是太弱了,收集一些令牌样本,看看它们是不是长得很像。如果令牌生成不靠随机性,黑客就能自己造令牌,或者直接把别人的令牌抢过来!
哪些功能容易出问题?
1)注册功能:注册的时候是不是太简单了?
2)认证过程:认证流程是不是有猫腻?
3)令牌处理和生成:令牌是不是太容易被破解了?
4)密码重置:想象一下,一个密码重置功能只需要你提供邮箱和一个六位数的验证码。如果API允许无限次请求,黑客只需要试个一百万次,就能重置任何用户的密码!四位数验证码?一万次就搞定!
过度数据暴露:你给我发这么多“果照”干嘛?
过度数据暴露,就是API端点返回的信息比你需要的还多!这就像你只想知道对方的名字,结果对方把姓名、生日、邮箱、电话,甚至他所有亲戚朋友的信息都一股脑地发给你了!
怎么识别?
简单粗暴,测试API端点,看看响应里都有些啥。
资源缺乏和速率限制:服务器扛不住了,卒!
速率限制在API的商业化和可用性方面至关重要。如果不对用户请求的数量进行限制,API提供商的服务器可能会被搞崩溃。当请求太多,服务器不够用时,就会导致拒绝服务攻击。
功能级授权缺陷(垂直越权):小号也能开挂?
功能级授权缺陷,简称BFLA,是一种安全漏洞,它允许一个角色或组的用户访问另一个角色或组的API功能。
简单说,就是小号也能用管理员的功能!
API提供商通常会为不同类型的账户设置不同的角色,比如普通用户、商家、管理员等等。如果一个用户能用另一个权限级别或组的功能,那就可能存在BFLA漏洞。
怎么发现?
最简单的方法就是找到管理员API文档,然后用普通用户的身份发送请求,测试管理功能。
批量分配:偷偷给参数“加戏”!
当API用户的请求中包含了一些不该出现的参数,而且应用程序还傻乎乎地把这些参数用到了代码里,批量分配就出现了。
简单说,就是API里存在一些隐藏的参数,你可以通过添加这些参数来修改对象属性。
{
假设你正在创建一个账户,API文档里有一个额外的参数叫“isAdmin”,你可以把它的值设为true,然后你就是管理员了!
{
怎么找到这些“隐藏”的参数?
查阅API文档,看看有没有和用户账户属性、关键功能、管理操作相关的参数。拦截API请求和响应,也有助于发现值得测试的参数。还可以猜测参数,或者用Fuzzing(模糊测试)来测试API请求。
安全配置错误:开发小哥,你又粗心了!
安全配置错误,就是开发人员在API的安全配置上犯的各种错误。这些错误如果严重到导致敏感信息泄露,甚至整个系统被黑客接管,那就完犊子了!
举个栗子: API的安全配置显示存在未修复的漏洞,黑客就能利用这些漏洞轻松控制API和系统。
安全配置错误包括:
- 错误配置的标头
- 错误配置的传输加密
- 使用默认账户
- 接受不必要的HTTP方法
- 缺失输入过滤
- 详细的错误消息
怎么检测?
用Web应用程序漏洞扫描器(比如Nessus、Qualys、OWASP ZAP、nikto)来检测这些错误。这些扫描器会自动检查Web服务器版本信息、标头、Cookie、传输加密配置和参数,看看是不是缺少了必要的安全措施。当然,你也可以手动检查这些配置。
注入:黑客的代码混进了“队伍”!
注入漏洞发生于请求传输至API基础架构的过程中,API提供商没能对输入进行过滤,导致黑客的代码被当成了正常数据执行。
当此类漏洞存在时,黑客就可以实施注入攻击,比如SQL注入、NoSQL注入、系统命令注入。
不当的资产管理:老古董也来凑热闹?
不当的资产管理可能导致组织暴露一些已经停用或者还在开发中的API。
为啥这很危险?
- 旧的API版本更容易存在漏洞,因为它们不再接受更新和修复。
- 开发中的API通常不如生产API安全。
不当的资产管理可能导致数据过度暴露、信息泄露、大规模资源分配、速率限制不当、API注入等问题。
怎么识别?
关注过时的API文档、变更日志和存储库中的版本历史。例如,如果组织没有及时更新API文档,可能出现对已不再支持的API部分的引用。开发中的API通常使用一些特殊的路径,比如/alpha/、/beta/、/test/、/uat/、/demo/。
除了查阅文档,还可以通过猜测、模糊测试或暴力请求等方法发现资产管理方面的漏洞。
业务逻辑漏洞:规则都被你玩坏了!
业务逻辑漏洞,就是应用程序中的设计特性被黑客恶意利用。
举个栗子: 某API有上传功能,但是没有对上传的文件进行验证,黑客只需要对文件进行编码,就可以上传任意文件,包括恶意代码!
怎么发现?
在API文档中寻找业务逻辑漏洞的蛛丝马迹。一些关键语句可能会给你启发,比如:
- “只能通过功能X执行功能Y”
- “避免使用端点Y进行X操作”
- “只有管理员才能执行请求X”
这些表述暗示了API提供商对用户的信任,认为用户不会做一些不该做的事情。但是,作为安全人员,我们就是要挑战这些假设,验证安全控制措施的有效性!
```
黑客/网络安全学习包
资料目录
-
成长路线图&学习规划
-
配套视频教程
-
SRC&黑客文籍
-
护网行动资料
-
黑客必读书单
-
面试题合集
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************
1.成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************
2.视频教程
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************
3.SRC&黑客文籍
大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录
SRC技术文籍:
黑客资料由于是敏感资源,这里不能直接展示哦!
4.护网行动资料
其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!
5.黑客必读书单
**
**
6.面试题合集
当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。
更多内容为防止和谐,可以扫描获取~
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*********************************