si1ent

API及客户端漏洞挖掘

2020-06-09

API及客户端漏洞挖掘

准备

1
2
3
4
5
6
7
* API文档(postman生成document文档或单功能测试)
* 测试账户两个(权限不同账户)
* Burp Suite工具
* Postman
* MobSF框架
* 浏览器及插件(Chrome&Modheader&postman插件)
* 更新....

检测方式

1
2
3
1、黑盒:只指定apk、ipa安全测试
2、灰盒:API文档、apk、ipa等
3、白盒:审计

检测项目及可能存在漏洞

1
2
3
备注:
以下整理漏洞可能会存在各自负责待测系统上请谨慎测试.
留意代码逻辑处理是否安全.

客户端

APK

  1. 反编译
  2. APK签名检测
  3. 敏感信息泄露
  4. 组件安全
  5. 应用程序是否可备份
  6. 应用程序权限检测
  7. 敏感信息泄露
  8. UI泄露
  9. 等等

    IPA

  10. 安全编译选项
  11. 加密缺陷(弱算法、密钥泄露)
  12. 不安全随机数
  13. XcodeGhost漏洞
  14. AFNetworking SSL漏洞
  15. 数据存储安全
  16. 日志敏感信息
  17. 网络传输安全
  18. 存储测试服域名或IP地址
  19. 等等

API及Web

  1. 注册&登陆入口
    1. 手机号注册登陆
      1. 短信验证码爆破
      2. 短信验证码回传
      3. 短信验证码失效时间较短
      4. 等等验证码安全问题
    2. 昵称登陆
      1. 验证码复用
      2. 爆破
      3. 用户明文传输(可忽略不计,但建议加密处理)
    3. 任意账户注册
      1. 系统可随机注册不做手机号及昵称检测(检测是否已注册)
  2. 用户个人信息
    1. 用户名修改处可能存在XSS(跨站脚本攻击)
    2. 越权修改他人个人信息(通过修改用户uid越权修改他人信息)
    3. UI信息泄露(个人手机号及他人手机号隐藏展示)
    4. 越权访问(通过UID越权访问他人信息)
  3. 文章/视频类
    1. 参数处存在SQL注入(未过滤)
    2. 命令执行(未对用户输入命令进行转义)
    3. 或其他Web漏洞
  4. 分享/红包
    1. 绕过系统检测分享获取红包(用户注册后台及时更新记录)
  5. 签到
    1. 用户可一直进行签到(绕过签到检测规则)
  6. 金额
    1. 绕过金额最低提现检测(后台检测金额并对比)
  7. 用户关系
    1. 越权访问(可对比用户个人信息项)
  8. 新手
    1. 参数未做处理(修改参数即可刷金额,每访问一次会自动加一)
  9. 系统报错
    1. debug模式开启报错致信息泄漏(看所用框架类型)
      1. debug模式研发须在产品上线前进行关闭

实战API渗透测试

(以下部分演示不完全来自一个API检测结果,同时内部包含部分移动端检测.)

客户端敏感信息

1、漏洞位置

敏感数据存在app安装的数据目录中缓存用户的部分信息。

2、漏洞影响

2.1、root手机ssh登陆所在安装目录

2.2、查找敏感数据

3、漏洞修复

1、客户端不要缓存客户敏感信息
2、客户端脱密后存储

IPA内存在测试服域名信息

1、漏洞位置

IPA源码内存放部分域名信息,被静态分析得到(一般移动端建议经过安全加固进行处理,如果处于debug包可能会泄漏相关信息.)

2、漏洞影响

2.1、使用本地移动框架自动检测ipa包

2.2、URL信息获取

3、漏洞修复

1、手工检查并清理
2、针对APK或IPA包进行第三方加固是实现自动清理

UI信息泄漏

1、漏洞位置

用户个人信息及其他信息处(此类漏洞针对金融类APP必须进行后端隐藏处理.)

2、漏洞影响

2.1、好友处手机号明文显示

3、漏洞修复

1、后端对用户手机号或账户名进行隐藏处理

短信验证码爆破

1、漏洞位置

漏洞主要出现用户注册、短信登陆,部分个人手机号绑定等功能处会存在这一安全问题.

2、漏洞影响

2.1、验证码获取接口

2.2、截获数据包并加载字典进行爆破

3、漏洞修复

1、验证失效时间设置5分钟以内
2、验证码长度设置6为

短信轰炸

1、漏洞位置

注册或个人密码修改获取验证码处如果未对获取进行次数限制会导致此类漏洞

2、漏洞影响

2.1、获取验证码

2.2、手机收到15条短信

3、漏洞修复

1、短信获取次数限制

越权访问

1、漏洞位置

通过修改UID获取其他账户信息;

2、漏洞影响

修改user_id获取其他用户信息

3、漏洞修复

1、权限严格控制(后端进行不同账户权限分离)

权限绕过

1、漏洞位置

此漏洞是由于系统进行认证而导致的同一token可登录不同系统中,这类漏洞可以检测针对前后端分离且后端登录入口也是调API来登录的系统.

2、漏洞影响

2.1、普通账户认证获取的token

2.2、插件替换token,实现权限绕过

2.3、其他操作需结合系统功能进行查找(这里建议查看JS或许能够获取大概请求信息以及F12)

2.4、替换的token可直接调用此API

3、漏洞修复

1、权限控制严格

参数修改

1、漏洞位置

此漏洞多出现用户访问指定文件或视屏后即可获取奖励,而参数未进行限制(数量未作限制)

2、漏洞影响

2.1、用户数据修改参数即可完成刷红包

2.2、后台未对参数进行数量限制导致修改sort即可刷红包

3、漏洞修复

1、设定sort参数并做好数量限制

敏感信息泄露

1、漏洞位置

此类漏洞因用户提交恶意字符而服务器端无法解析等问题导致的信息泄露均归属到敏感信息泄露;

2、漏洞影响

2.1、URL访问如服务器端响应报错

2.2、服务器端敏感文件泄露(某高校缴费系统泄露)

3、漏洞修复

1、关闭debug
2、清理不必要文件、日志等

扩展其他

任意账户注册

1、漏洞位置

手机号注册未对手机号或昵称进行是否注册检测,或敏感内部平台对外提供服务而为关闭注册入口等.

2、漏洞影响

2.1、YAPI任意账户注册

2.2、项目信息,同时越权访问其他邮箱信息

3、漏洞修复

1、关闭注册入口

使用支付宝打赏
使用微信打赏

若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏

扫描二维码,分享此文章