tip11:
检查API 是否使用授权头?忘了 CSRF 吧!如果身份验证机制不支持 cookie,则这个 API 就被设计为了防止 CSRF 的攻击。
tip12:
对 BOLA (IDOR)的测试?即使ID是GUID或非数字类型的值,渗透测试人员也要尝试发送一个数字值。
例如: / ?user_id=111 使用 user_id=inon@traceable.ai 代替
有时身份认证机制同时支持这两种方式,而且暴力破解数字更容易。
tip13:
使用大量分配绕过安全机制。例如,“输入密码”机制:
POST /api/reset_pass
requires old password.PUT /api/update_user
is vulnerable to MA == can be used to update pass without sending the old one (For CSRF)*
比如 上面的重设密码需要旧密码,但是更新用户的API 就不需要发送旧密码
tip14:
在API测试期间卡住了?
扩大你的攻击面!
查找同级域名或者子域名 使用http://Virustotal.com和http://Censys.io。其中一些域可能使用不同的配置/版本公开相同的api。
tip15:
静态资源包括照片、视频等等,Web服务器(IIS、Apache)在授权时对静态资源的方式是不同的。即使开发人员实现了良好的授权,也有很好的机会访问其他用户的静态资源。
tip16:
即使您使用另一个web代理,始终在后台使用Burp。@PortSwigger的人在帮助你管理测试用例方面做得非常好。使用“树视图”(免费版本)功能查看您访问过的所有API端点。
tip17:
移动证书锁定?在你开始逆向工程和修补客户端应用程序之前,检查iOS和Android客户端以及它们的旧版本。很有可能其中一个没有启用证书锁定。 这样可以节约时间。
tip18:
公司和开发人员倾向于将更多的资源(包括安全性)投入到主要的api中。那些很少被人们使用过的API 接口可以发掘一些有趣的漏洞。
如 POST /api/profile/upload_christmas_voice_greeting
tip19:
你觉得哪些功能更容易受到攻击?
- Organization’s user management
- Export to CSV/HTML/PDF
- Custom views of dashboards
- Sub user creation&management
- Object sharing (photos, posts,etc)
上面的都容易被攻击吧,最容易的就是有权限访问的。像组织用户管理,子用户创建和管理。
对象共享,也有权限问题,输出CSV/HTML/PDF 这个功能可能比前面的要好一点。
tip20:
测试AuthN api ? 如果您在生产环境中进行测试,那么很有可能AuthN端点具有抗暴力破解保护。无论如何,DevOps工程师倾向于在非生产环境中禁用速率限制。不要忘记测试它们:)
更多的例子: WHY FACEBOOK HACKERS ARE A REAL THREAT AND HOW TO PROTECT YOURSELF
这个例子也会写一篇文章,链接后面发。