移动应用渗透测试:API 接口漏洞的识别与利用技巧
移动应用渗透测试:API 接口漏洞的识别与利用技巧
一、API 接口漏洞识别方法
认证与授权漏洞检测
- 失效的对象级授权(BOLA):修改API请求中的资源ID(如
/api/users/123
→/api/users/456
),验证是否越权访问他人数据。 - 失效的用户认证(BIA):通过暴力破解(Hydra工具)或拦截Token篡改(如修改JWT中的
exp
字段)绕过身份验证。 - 权限控制缺失:测试未授权接口(如
/api/admin/deleteAll
)是否可被普通用户调用,利用Burp Suite的Repeater模块重放请求。
- 失效的对象级授权(BOLA):修改API请求中的资源ID(如
输入验证漏洞挖掘
- 注入攻击测试:在输入参数中注入SQL(
' OR 1=1 --
)、XSS(<script>alert(1)</script>
)或NoSQL({ "username": "admin" }
)语句,观察响应异常。 - 业务逻辑漏洞:重复提交订单(幂等性缺失)、篡改支付金额(如将
amount=100
改为amount=-100
)。
- 注入攻击测试:在输入参数中注入SQL(
数据泄露与敏感信息暴露
- 明文传输检测:通过Wireshark或Burp Suite抓包,检查HTTPS是否配置错误(如证书校验绕过)。
- 过度数据暴露:分析API响应,确认是否返回敏感字段(如密码明文、用户ID),使用JSON Schema验证字段过滤规则。
API滥用与速率限制缺陷
- DDoS攻击模拟:使用Locust或JMeter对API发起高频请求(如每秒1000次),测试是否触发限流机制。
- 重放攻击验证:截获合法请求(如支付接口),通过Burp Suite的Repeater重复发送,观察业务影响。
二、API 接口漏洞利用技巧
绕过认证机制
- SSL Pinning绕过:使用Frida脚本Hook证书校验函数(如Android的
X509TrustManager.checkServerTrusted
),或通过Xposed框架禁用证书验证。 - Token劫持:拦截登录接口的JWT Token,修改用户ID字段(如
sub":"user123"→"sub":"admin"
)提升权限。
- SSL Pinning绕过:使用Frida脚本Hook证书校验函数(如Android的
参数篡改与注入
- SQL注入利用:构造恶意请求(如
/api/search?query=' OR 1=1 --
),通过错误回显获取数据库结构,最终导出数据。 - 命令注入:在文件上传接口注入系统命令(如
filename=shell.php; rm -rf /
),结合Burp Suite的Intruder生成变异Payload。
- SQL注入利用:构造恶意请求(如
数据窃取与篡改
- 敏感数据导出:利用未授权的导出接口(如
/api/export?format=csv
),通过分页参数(page=1&page_size=10000
)批量获取数据。 - 支付金额篡改:修改订单接口的金额参数(如
amount=100→amount=0.01
),结合抓包工具实现0元购。
- 敏感数据导出:利用未授权的导出接口(如
逻辑漏洞利用
- 越权访问:通过修改HTTP头部(如
X-Forwarded-For
伪造IP)绕过地域限制,或利用设备指纹漏洞绕过设备绑定。 - 会话固定攻击:劫持用户会话ID(如
JSESSIONID=xxx
),强制用户使用攻击者控制的会话。
- 越权访问:通过修改HTTP头部(如
三、工具链与实战场景
核心工具推荐
- 流量拦截与修改:Burp Suite(拦截HTTPS请求)、Fiddler(模拟移动端代理)。
- 动态调试与Hook:Frida(Android/iOS代码注入)、Xposed框架(修改系统行为)。
- 自动化扫描:MobSF(移动应用安全框架)、OWASP ZAP(API漏洞扫描)。
典型场景案例
- 案例1:支付接口绕过
- 漏洞:支付金额未校验签名,直接修改
amount
参数。 - 利用:通过Burp Suite的Collaborator生成恶意回调URL,触发资金转移。
- 漏洞:支付金额未校验签名,直接修改
- 案例2:用户数据泄露
- 漏洞:用户信息接口未过滤内部IP字段(如
192.168.1.1
)。 - 利用:构造请求导出所有用户数据,结合SQLMap自动化提取。
- 漏洞:用户信息接口未过滤内部IP字段(如
- 案例1:支付接口绕过
四、防御策略与加固建议
技术防护
- 强制HTTPS与证书校验:禁用HTTP明文传输,启用证书双向绑定(mTLS)。
- 输入过滤与输出编码:对所有参数进行白名单校验,使用ESAPI库防止XSS。
架构优化
- 速率限制与熔断机制:按IP/User ID限制API调用频率(如每分钟100次),结合Sentinel实现动态限流。
- 日志审计与监控:记录敏感操作日志(如登录失败、参数篡改),通过ELK实时分析异常行为。
流程管理
- DevSecOps集成:在CI/CD流水线中嵌入SonarQube扫描,阻断高风险代码合并。
- 红蓝对抗演练:定期模拟攻击者行为(如利用模糊测试工具Atheris),验证防御体系有效性。
五、总结
移动应用API漏洞的识别与利用需结合动态测试(抓包、注入)与静态分析(代码审计、反编译)。攻击者常利用认证缺陷、输入过滤不足及业务逻辑漏洞实施数据窃取或服务破坏,而防御方需通过多层防护(加密、限流、监控)和持续测试(自动化+人工渗透)构建纵深防御体系。