vAPI靶场通关过程

参考文章

参考文章

靶场安装

#安装docker的前提下
git clone https://github.com/roottusk/vapi.git
cd vapi/

修改.yml文件
vAPI默认绑定主机80(HTTP)、3306(MySQL)、8001(PHPMyAdmin)端口
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

docker-compose up -d

Postman配置

vAPI 编写了专门的测试 Collection

https://raw.githubusercontent.com/roottusk/vapi/master/postman/vAPI.postman_collection.json

在这里插入图片描述

设置Host

选中{{host}},更改为vAPI靶场IP,选中,设置为变量->设置为一个新的变量
在这里插入图片描述
在这里插入图片描述
最终效果在这里插入图片描述

通关过程

API1

简单的 API 权限校验缺失导致的越权漏洞

接口

Create User

创建用户–>传入用户名、姓名、课程、密码
在这里插入图片描述返回一个id

Get User

获取用户信息–>将返回的id设置为api1_id ,需要在 Headers 中设置 Authorization-Token,格式为base64_encode(username:password)。
在这里插入图片描述

Update User

修改用户信息–>同样需要在 Headers 中设置 Authorization-Token,然后设置修改内容
在这里插入图片描述
修改课程名称
在这里插入图片描述

漏洞利用点

在获取了对象数据时,只要传入任一有效的 Authorization-Token,即可获取所有用户信息
在这里插入图片描述查看源代码

$validuser = API1Users::where('username',$user->getUsername())->where('password',$user->getPassword())->count();
#只判断用户名和密码是否匹配,没有判断用户和id是否匹配

在这里插入图片描述
可以利用这个漏洞,访问Update User任意修改用户信息
在这里插入图片描述

漏洞修复

对数据库中存储的用户id进行校验

API2

Broken Authentication
身份验证验证手段缺失导致的暴力破解。
在这里插入图片描述

接口

User Login

使用email和password登陆
在这里插入图片描述根据文档提示
在这里插入图片描述在这里插入图片描述

Get Details

获取用户信息

漏洞利用点

使用BP进行暴力破解
在这里插入图片描述拷贝到BP的Intruder模块
在这里插入图片描述在这里插入图片描述设置payload1
在这里插入图片描述设置payload2
在这里插入图片描述
取消两个 payload 的 URL-Encode(两个都要取消,不取消的话是爆破不出来的)
在这里插入图片描述在这里插入图片描述使用爆破到的数据进行登陆,拿到token
在这里插入图片描述
放入 Authorization-Token 中使用获取用户信息接口拿到 flag在这里插入图片描述

漏洞修复

  • 添加登陆验证码
  • 限制账号、IP登陆次数

API3

过度信息暴露,在开发过程中,经验不足的程序员可能会将数据查询结果不做任何过滤,或包含在 JSON 的 Data 中返回给前端处理,或包含在 JSON 的 Data 中进行返回,导致敏感信息泄漏。
在这里插入图片描述

接口

Create User

漏洞利用点

对Resources/apk进行抓包

Flag 就在返回结果中。
抓包失败–>挖个坑–>待补充

漏洞修复

不懂但大为震撼
在这里插入图片描述

API4

缺少对资源和速率的限制。

接口

Mobile Login

手机登录,通过手机号登录,输入手机号,提示已将4位数的OTP发送到手机。
OTP:One Time Password,又称一次性口令、一次性密码、动态密码、单次有效密码。
在这里插入图片描述

Verify OTP

对传入的4位数字的OTP进行验证
在这里插入图片描述

Get Details

验证通过,获取用户信息

漏洞利用点

后台没有对访问速率与错误次数进行限制,可暴力破解4位OTP
在这里插入图片描述将代码复制到BP的Intruder模块
在这里插入图片描述设置Payload
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

漏洞修复

  • 限制OTP错误次数;

  • 增强OTP复杂度。

API5

功能权限认证缺陷。
在这里插入图片描述

接口

Create User

创建用户
在这里插入图片描述

Get User

获取用户信息

漏洞利用点

分离出的管理员用来查看所有用户数据的 /users 接口没有进行管理员权限校验,只需要创建普通用户,然后使用普通用户即可查看所有用户数据。
在这里插入图片描述

在这里插入图片描述

漏洞修复

完善权限校验机制

API6

过度数据赋值
在这里插入图片描述

接口

Create User

创建用户
在这里插入图片描述

Get User

获取用户信息
在这里插入图片描述

漏洞利用点

创建新用户,直接传入credit字段为100
在这里插入图片描述

使用新用户获取个人信息
在这里插入图片描述

漏洞修复

不懂但大为震撼
在这里插入图片描述

API7

在这里插入图片描述没有配置CORS导致的CSRF漏洞
在这里插入图片描述

接口

Create User

创建用户
在这里插入图片描述

User Login

用户登录
在这里插入图片描述

Get Key

获取key->获取用户信息
在这里插入图片描述

User Logout

在这里插入图片描述

漏洞利用点

在这里插入图片描述
登录后,直接在 Get Key 接口添加任意 Origin 即可拿到 flag。
在这里插入图片描述

漏洞修复

  • 配置 CORS
  • 添加 CSRF_TOKEN

API8

注入

接口

User Login

没有用户创建了,直接用户登录
在这里插入图片描述

Get Secret

登陆后获取用户信息
在这里插入图片描述

漏洞利用点

尝试使用SQL注入万能密码登陆
在这里插入图片描述获取key
在这里插入图片描述拿到flag

漏洞修复

  • 对用户输入进行预处理
  • 对特殊字符 # ’ – 进行过滤

API9

在这里插入图片描述
在这里插入图片描述

接口

Login

用户登录需要username以及4位pin码
在这里插入图片描述

漏洞利用点

尝试暴力破解pin码
在这里插入图片描述在这里插入图片描述存在防爆破机制,当尝试次数过多则会返回500
在这里插入图片描述将 URL 中的 v2 改成 v1,爆破老版本 API,没有爆破机制,成功爆破 pin 为 1655,得到flag。
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

漏洞修复

  • 停用老版本 API;
  • 将老版本 API 放入内网。

API10

在这里插入图片描述

接口

Get Flag

在这里插入图片描述

漏洞利用点

漏洞修复

对API做日志管理和访问监控

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值