ARTICLE · 1087327
好靶场月赛-APP渗透测试
好靶场月赛-APP渗透测试










unsetunset前言unsetunset
中秋假期体验卡已到期,在生存三天就可以领取国庆假期体验卡了,再浅浅的坚持一下
之前没有接触过APP的一个渗透,好靶场今天刚好有一个APP渗透赛,模拟实战,比赛形式很新颖,要不是还要收拾东西,I can do it all day
unsetunset渗透背景unsetunset

早上看到这个背景的时候就被深深的吸引住了,真的非常的炫酷,迫不及待的打开环境测试一波
打开靶场下载APK,放入模拟器中运行抓包,开始测试
unsetunset测试思路unsetunset
短信轰炸

这里存在一个验证码发送功能,尝试一下短信轰炸

这里对短信的频率没有做校验,存在短信轰炸漏洞
IDOR遍历
通过JADX对该APK进行反编译,提取出其中所有包含api/的接口

认证相关 (Auth)
- POST /api/sms/send - 发送短信验证码 {phone}
- POST /api/user/register - 注册 {username, password(sha256), phone, code}
- POST /api/user/login - 登录 {username, password(sha256)}
- POST /api/user/reset - 重置密码 {phone, code, password(sha256)}
- POST /api/user/logout - 登出 {}
用户信息
- GET /api/user/info - 获取用户信息
- GET /api/user/feedback - 获取我的反馈
- POST /api/user/feedback - 提交反馈 {content, contact}
- GET /api/feedback/query?id= - 查询反馈
商品/配置
- GET /api/health - 健康检查
- GET /api/config - 获取配置
- GET /api/products - 商品列表
订单
- GET /api/orders - 订单列表
- POST /api/orders - 下单
- POST /api/orders/{id}/confirm - 确认收货
- POST /api/orders/{id}/cancel - 取消订单
钱包/积分
- POST /api/wallet/recharge - 充值 {amount}
- GET /api/wallet/txns - 钱包交易记录
- POST /api/points/redeem - 积分兑换 {points}
- GET /api/points/log - 积分日志
优惠券
- GET /api/coupons - 我的优惠券
- GET /api/coupons/pool - 优惠券池
- POST /api/coupons/claim - 领取优惠券
对这里的/api/feedback/query?id=这个接口尝试进行遍历

发现存在IDOR遍历
用户接管
/api/user/reset这个接口的功能是对密码进行重置,这里尝试接管该账户 因为之前的验证码接口也没有进行身份验证,这里可以获取该用户的验证码

重置密码后登录

0元购
这里查看这个人的订单

实付0元,看来这里还存在支付验证漏洞 通过抓包发现付款的接口为POST /api/orders这个接口,只存在两个参数,id和qty

这里猜测服务端会解析items这个对象,但不会将具体字段与数据库中的进行匹配,这里我们可以添加price字段,设置为0,看看是否会扣费

这里观察响应中的total字段,可以放心值由19.9变为了0

成功实现0元购
unsetunset反思unsetunset
第一次对APP进行测试,重点还是放在了接口测试上,经验不足,还得继续学习。
对了,师傅们觉得我可以走到了那杯奶茶了吗