干货|31类API安全测试的小技巧总结

随着RESTful API、GraphQL API等API技术的发展,掌握API安全技术是渗透测试工程师的一项基本技能,在渗透测试过程中会用到各种API安全工具和技巧,其中API安全小贴士是入门学习的首选推荐,这里将它的中文版转发过来。

//////////

1. API版本漏洞,比如存在api/v3/login则检测api/v1/login,低版本API可能存在更多漏洞。

2. API多端/多接入点漏洞,比如认证接口,可能存在移动端、PC端、web端不同的认证接口或者不同的认证入口,/api/mobile/login 、 /api/v3/login 、 /api/magic_link等。

3. BOLA(失效的对象级授权和访问控制),BOLA像十年前的SQL注入一样,在API安全中广泛存在,作者通过一个附件材料,详细地介绍了BOLA问题的根源、如何发现和检测、如何防范和规避,并针对不同的角色(技术经理、开发人员、渗透人员)给出了建议。

4. 命令行注入,

以https://apidock.com/ruby/Kernel/open为例,开发人员使用了这个接口可能会导致命令行注入漏洞的存在。

5. API接口也会存在SSRF,可以利用此漏洞可以探测内网IP地址、端口、下载大文件导致Dos、显示内网控制台等。

6. 批量分配问题,现代开发框架鼓励开发人员在不理解安全含义的情况下使用批量分配方式的数据结构,往往仅仅通过修复http请求方法即可获取额外的信息,比如同一个接口由PUT请求调用修改为GET请求。

7. 同一功能多个接口问题,当一家公司对外提供API接口给开发者时,同样的功能下,API接口与移动端、PC端接口实现方式一定要单独测试验证,不要假定跟移动端、PC端具备同样的安全机制。

8. 多协议问题,当渗透测试时,如果是REST API,试着仅仅将content-type修改为 'application/xml',添加一段xml后发出请求,验证其是否支持SOAP协议,从而发现是否存在安全漏洞。

9. HTTP header标志符安全问题,当渗透测试REST API,HTTP header中的标志符往往比url中的标志符更容易发现安全问题。

10. 破坏功能级的授权和访问控制,来发现管理类API接入点,比如正常的请求是GET /api/v1/users/<id> 将其修改为 DELETE / POST 去尝试删除或创建用户。

11. 使用header认证,如果验证机制不支持cookie方式,则需要通过防护设计来保护API免受CSRF攻击。

12. 测试数值枚举,即使ID值为GUID生成的,也可以使用数值类型的来测试,比如使用 /?user_id=111来代替 user_id=inon@traceable.ai的值,有时候授权机制同时支持数值型和字符串型两种方式。

13. 批量分配问题导致授权绕过,比如POST /api/reset_pass 接口调用时需要验证旧密码,而PUT /api/update_user 接口调用可能就不需要旧密码。

14. 尝试扩展攻击面,比如通过http://Virustotal.com或 http://Censys.io可能发现同一API的不同的配置或不同的版本,以帮助你发现问题。

15. 静态资源授权问题,很多时候,应用程序本身授权访问控制在开发方面可能做得很好,但对静态资源的保护,比如说视频、图片、文件,在访问控制做得不够,存在未授权访问问题。

16. 渗透测试工具选择Burp Suite,即使免费版也提供树状视图,帮助你管理和发现所有你可以访问的API接口。

17. Mobile Certificate Pinning,当你测试Android或iOS APP时,在逆向工程或打补丁之前,看看老的版本是否存在Mobile Certificate Pinning不可用的问题。

18. 多关注很少人使用的功能,企业和开发者更多的关注那些使用量高的API,对于使用频率低的API,往往存在有趣的漏洞。

19. 以下这些功能可能存在更多的漏洞,比如组织机构内的用户管理、 CSV/HTML/PDF文件导出、客户视图、子账号的管理创建、对象共享(比如图片、文档等)。

20. 限流测试,尤其是在测试环境中,开发人员往往丢失限流机制,导致被暴力破解。

21. 使用 http://archive.com扩展攻击面,在http://archive.com上寻找老版本的应用,扫描js文件来发现url地址,扩大攻击点。

22. 个人信息泄露,一般来说,安全设计默认是保护个人信息隐私的,但通常后端工程师将json数据全部返回给前端工程师,由前端工程师做好数据过滤后展现。渗透时可以找到API调用入口,获取所有的信息,比如/download_receipt,/export_receipt等。

23. 下载应用APP或者应用源码,通过逆向工程(比如DLL文件: 使用IL-spy; Java反编译使用Luyten)来发现更多的问题。

24. 渗透测试环境下认证, 授权, 限流、输入验证的安全机制,在测试环境中,研发人员往往禁用这些安全机制,渗透人员可以利用此来扩大攻击面。

25. 攻击导出PDF功能,导出功能往往使用扩展类库来处理导出功能,比如转换html为PDF,可以试试html注入。

26. 常用授权绕过技巧,在某些场景下,授权机制依赖于某个ID值,如果将ID值篡改为对象,比如数组对象、JSON对象,则发生授权绕过。

类似的攻击手法有:

数组绕过:{“id”:111} --> {“id”:[111]}JSON

对象绕过:{“id”:111} --> {“id”:{“id”:111}}

两次传值绕过:/api?id=非法参数值&id=恶意参数值

正则匹配绕过:{'user_id':'*'}

27. 当后端服务存在XSS保护时,以JSON代替试试。某些场景下,后端服务对html中存在xss具备保护机制,一旦触发则无应答或异常响应,试试以JSON格式的响应。

28. .NET应用测试技巧:有时候,开发者使用path_1,path_2两个参数来构造绝对路径,可能存在如果path_2为绝对路径时,则path_1则被忽略。

29.  善于利用API公开资料,大多数API接口都会有接口说明文档,并配备使用的源码样例程序,渗透测试人员要善于利用这些资料,分析用户、角色、资源之间的关系,从而发现更多的漏洞。

30.  渗透测试进入僵持阶段怎么办?扩大攻击面。如果有移动端应用,可以从应用市场下载历史版本,寻找安全机制缺失的API调用接口,比如授权、参数过滤、速率限制、影子API等。

31. 关注速率限制类型的安全漏洞,尤其是带有limit / page之类的参数,比如/api/news?limit=100,/api/news/pageNo/10/pageSize/50之类的接口,通过修改参数值测试是否存在Http Dos漏洞。

(0)

相关推荐

  • python接口自动化21-规范的API接口文档示例

    前言 接口文档到底长啥样?做接口测试最大的障碍在于没有接口文档,很多公司不注重接口文档的编写,导致测试小伙伴没见过接口文档. 运气好一点的测试小伙伴可能厚着脸皮找开发要过接口文档,然而拿过来的接口文档 ...

  • jmeter压测学习8-压测带token的接口

    前言 工作中我们需要压测的接口大部分都是需要先登陆后,带着token的接口(或者带着cookies),我们可以先登陆获取token再关联到下个接口. 比如我现在要压测一个修改用户的个人信息接口,每个用 ...

  • httprunner学习1-环境与登录接口案例

    前言 HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试. 使用环境: python 3.6 httprunner 1 ...

  • 干货来啦,文言文提分小技巧,翻译时如何紧扣语境?

    文言翻译是文言文阅读的重头戏.可是考生在这方面一直很困惑.很苦恼,训练了这么长时间,也做了很多文言文阅读,就是一直拿不了高分.这其中固然有积累不够.不厚的因素,但更与考生在翻译时不好的习惯或者意识有关 ...

  • 女生拍摄干货:海边拍照的5个小技巧,拍出美照很简单!

    90后旅行,只为遇见:照片太丑?教你五种海边旅游的正确拍照方法,再不用为美照担心! 女生一直都很向往海边生活,这样每天都能近距离跟大海接触,品尝新鲜的美味,不论是鱼或虾味道绝对是超赞的.除了吃海鲜以外 ...

  • 干货:景观设计的23个小技巧

    园林景观设计中,涉及到美学.人文.绿化.风水等多方面知识,一般以建筑为硬件,绿化为软件,水景为网络,小品为节点,进行整体的融合和搭配. 为了达到美学和实用的效果,设计过程中的一些细节和讲究恰当的调整, ...

  • KEGG数据库的rest API(附带R语言小技巧)

    发现感兴趣的KEGG ID居然不在KEGG.db包里面,比如: hsa05034 Alcoholism hsa05030 Cocaine addiction 导致下面的代码失效: library(KE ...

  • 预测奇点 #商业思维 #涨知识 #预测 #干货 #宅春节涨知识 #创业 @DOU 小助手

    预测奇点 #商业思维 #涨知识 #预测 #干货 #宅春节涨知识 #创业 @DOU 小助手

  • 健身小技巧Tips,增肌餐搭配,超级干货!

    练的好不如吃的好,科学饮食能更好瘦身增肌喔~~ 一.健身前? ①为什么要吃? 运动前进食能延续运动中的燃脂效应,即便在运动结束,体内也会持续燃烧脂肪. ②什么时候吃? 健身前60分钟内 不要吃不易消化 ...

  • 干货知识 | 变声小技巧,get百变音!

    正太音 正太音发声方法:可以通过发'a'长音来找,从高音到低音,多'a'几遍,直到找到那个发声点. 正太音发声特点:音调拉高,嗓子压低.在少女音的基础上,加上刚硬.活力的感觉. 正太音的语调.语速要注 ...

  • 31类常用药适宜服用时间

    来源:国家执业药师考试指南 现代医学研究证实,很多药物的作用和毒性.不良反应与人体的生物节律(生物钟) 有着极其密切的关系.同一种药物在同等剂量可因给药时间不同,而产生不同的作用和疗效. 运用时辰药理 ...

  • 干货分享:3个环节提升小程序商业变现能力

    诸葛君说:9月27日,诸葛io联合齿轮易创,凤凰学院.创业邦星际营.瑞莱帮,举办主题为<增长 留存,突破小程序商业化瓶颈>的线下沙龙活动,旨在为小程序运营者提供有关增长.留存.营销等方面的 ...