序言

车联网跟WEB安全相关联的地方不多,车联网更多还是基于IOT安全。但是车联网安全也和WEB安全有密切相关的地方,比如云安全、API安全等。近两年的智能网联汽车从IVI(车载信息娱乐系统)、OTA服务器、控车APP、控车小程序等大量依赖各种API来控制和下发指令。这些API如果没有做好安全评估可能会导致攻击面的产生给汽车造成安全风险。

忽视API安全所造成的的安全风险

2023年1月3日Sam Curry领导的研究团队披露了将近20家汽车制造商和服务包含API安全漏洞,这些漏洞可能允许黑客执行恶意活动,从解锁、启动和跟踪汽车到暴露客户的个人信息。这些安全漏洞影响了知名品牌,包括宝马、劳莱斯、梅赛德斯-奔驰、法拉利、保时捷、捷豹、路虎、福特、起亚、本田、英菲尼迪、日产、讴歌、现代、丰田和创世纪。

漏洞摘要

  • 起亚、本田、英菲尼迪、日产、讴歌

    • 完全远程锁定、解锁、发动机启动、发动机停止、精确定位、闪光灯和仅使用 VIN 号的车辆鸣喇叭
    • 通过 VIN 号码(姓名、电话号码、电子邮件地址、实际地址)进行完全远程帐户接管和 PII 披露
    • 能够将用户锁定在远程管理他们的车辆之外,改变所有权
      • 特别是对于起亚,我们可以远程访问 360 度摄像头并查看汽车的实时图像
  • 奔驰

    • 通过配置不当的 SSO 访问数百个关键任务内部应用程序,包括……

      • SSO 背后的多个 Github 实例
      • 公司范围内的内部聊天工具,能够加入几乎任何频道
      • SonarQube,詹金斯,杂项。搭建服务器
      • 用于管理 AWS 实例的内部云部署服务
      • 内部车辆相关 API
    • 多个系统上的远程代码执行
    • 内存泄漏导致员工/客户 PII 泄露、帐户访问
  • 现代、创世纪

    • 完全远程锁定、解锁、发动机启动、发动机停止、精确定位、闪光灯和仅使用受害者电子邮件地址的喇叭车辆
    • 通过受害者电子邮件地址(姓名、电话号码、电子邮件地址、实际地址)进行完全远程帐户接管和 PII 披露
    • 能够将用户锁定在远程管理他们的车辆之外,改变所有权
  • 宝马、劳斯莱斯

    • 公司范围内的核心 SSO 漏洞使我们能够像任何员工一样访问任何员工应用程序,使我们能够……

      • 访问内部经销商门户,您可以在其中查询任何 VIN 号码以检索 BMW 的销售文件
      • 代表任何员工访问锁定在 SSO 后面的任何应用程序,包括远程工作人员和经销商使用的应用程序
  • 法拉利

    • 任何法拉利客户帐户的完全零交互帐户接管
    • IDOR 访问所有法拉利客户记录
    • 缺乏访问控制,允许攻击者创建、修改、删除员工“后台”管理员用户帐户和所有能够通过 CMS 系统修改法拉利拥有的网页的用户帐户
    • 能够在 api.ferrari.com(rest-connectors)上添加 HTTP 路由并查看所有现有的 rest-connectors 和与之关联的秘密(授权标头)
  • 斯皮龙

  • 福特

    • 量产车 Telematics API 的完整内存泄露

      • 披露客户 PII 和访问令牌,以便在车辆上跟踪和执行命令
      • 公开用于与远程信息处理相关的内部服务的配置凭证
      • 能够对客户帐户进行身份验证并访问所有 PII 并对车辆执行操作
    • 通过不正确的 URL 解析接管客户帐户,允许攻击者完全访问受害者帐户,包括车辆门户
  • 复活者

    • 完全超级管理访问权限,可以管理所有 Reviver 连接车辆的所有用户帐户和车辆。攻击者可以执行以下操作:

      • 跟踪物理 GPS 位置并管理所有 Reviver 客户的车牌(例如,将车牌底部的标语更改为任意文本)
      • 将任何车辆状态更新为“STOLEN”,更新车牌并通知当局
      • 访问所有用户记录,包括人们拥有的车辆、他们的实际地址、电话号码和电子邮件地址
      • 访问任何公司的车队管理功能,定位和管理车队中的所有车辆
  • 保时捷

    • 能够通过影响车辆远程信息处理服务的漏洞发送检索车辆位置、发送车辆命令和检索客户信息
  • 丰田

    • 丰田金融的 IDOR,披露任何丰田金融客户的姓名、电话号码、电子邮件地址和贷款状态
  • 捷豹、路虎

    • 用户帐户 IDOR 泄露密码哈希、姓名、电话号码、实际地址和车辆信息
  • SiriusXM 联网车辆服务

    • 泄漏的 AWS 密钥具有完整的组织读/写 S3 访问权限,能够检索所有文件,包括(似乎是)用户数据库、源代码和 SiriusXM 互联车辆服务的配置文件

更为详细的报告可以查看原版报告 https://samcurry.net/web-hackers-vs-the-auto-industry/ 这里就不详细说明了,后续可能会对漏洞风险点做一个详细梳理。

靶场安装

我们言归正传,开始我们的主题内容《靶场实测》。

首先安装docker,然后依次执行如下命令即可完成安装。

curl -o docker-compose.yml https://raw.githubusercontent.com/OWASP/crAPI/develop/deploy/docker/docker-compose.yml

VERSION=develop docker-compose pull

VERSION=develop docker-compose -f docker-compose.yml --compatibility up -d

靶场实测

下面我们根据官方提示文档来一步一步进行测试。

首先打开靶场

http://localhost:8888/login

可以看到页面上面有一个登录和注册,接下来开始测试漏洞。

挑战 1 - 访问其他用户车辆的详细信息

注册一个邮箱为test@test.com,密码为1qaz@WSX的用户

打开主页绑定车辆(邮件在http://localhost:8025)

点击刷新车辆位置抓包



会看到回显了车辆的经纬度

{"carId":"db0126ae-e7eb-42c6-87a2-76e5ab3ed5b0","vehicleLocation":{"id":1,"latitude":"33.7967129","longitude":"-84.3909149"},"fullName":"test"}

那么我们尝试修改vehicle后面的ID值,再次发包会不会可以获取到其他车辆的经纬度信息。

/identity/api/v2/vehicle/db0126ae-e7eb-42c6-87a2-76e5ab3ed5b0/location

点击社区并抓包,可以看到存在其他用户

响应包里面包含了其他用户的vehicleid

[{"id":"qwWAGHstR4ir6eAzteeDh6","title":"Title 3","content":"Hello world 3","author":{"nickname":"Robot","email":"robot001@example.com","vehicleid":"1d1a3f59-4b46-4ff5-a1d4-517768fa3d43","profile_pic_url":"","created_at":"2023-02-06T08:38:27.917Z"},"comments":[],"authorid":3,"CreatedAt":"2023-02-06T08:38:27.917Z"},{"id":"Fw3zFFyJWquZKDyUL9Ga8n","title":"Title 2","content":"Hello world 2","author":{"nickname":"Pogba","email":"pogba006@example.com","vehicleid":"3359dd8d-6edf-4a35-88b6-08171e96829a","profile_pic_url":"","created_at":"2023-02-06T08:38:27.915Z"},"comments":[],"authorid":2,"CreatedAt":"2023-02-06T08:38:27.915Z"},{"id":"tYMxYMqZBaJKdeCUtvFEVV","title":"Title 1","content":"Hello world 1","author":{"nickname":"Adam","email":"adam007@example.com","vehicleid":"56a68c3f-683d-44ef-8219-89c458992b8f","profile_pic_url":"","created_at":"2023-02-06T08:38:27.906Z"},"comments":[],"authorid":1,"CreatedAt":"2023-02-06T08:38:27.906Z"}]

只要输入其他用户的vehicleid值即可在响应中获取到其他用户的车辆经纬度和用户名等信息。

挑战 2 - 访问其他用户的维修报告

在主页点击报修,可以看到一个提交报修信息表单



我们提交之后查看响应包可以得到我们的报修信息链接http://localhost:8888/workshop/api/mechanic/mechanic_report?report_id=1,修改链接后面的report_id值即可查看其他车辆的报修信息。



挑战 3 - 重置不同用户的密码

在注册的时候我们可以得知用户登录是通过邮箱地址和密码进行登录。在车辆经纬度信息泄露中我们点击社区响应包里面可以看到其他用户的邮箱地址。

既然得到了用户的邮箱地址,那么我们就可以对用户进行找回密码操作。

尝试爆破验证码几次之后发现存在限制。

尝试修改接口POST /identity/api/auth/v2/check-otpV3修改为V2进行爆破。

挑战 4 - 找到泄露其他用户敏感信息的 API 端点

这个应该就是泄露邮箱和用户名id的API/community/api/v2/community/posts/recent

挑战 5 - 找到泄漏视频内部属性的 API 端点

这个应该就是上传视频泄露了内部的参数名conversion_params,然后可以利用这个参数名进行命令执行,没复现成功命令执行。

挑战 6 - 使用“接触机械”功能执行第 7 层 DoS

这个是在维修提交那里。

repeat_request_if_failed修改为truenumber_of_repeats修改成大数值。

Service unavailable. Seems like you caused layer 7 DoS :)

挑战 7 - 删除其他用户的视频

编辑视频名字可以抓到一个PUT包。

PUT修改为DELETE提示这是一个管理接口

尝试把接口中的user修改为admin

DELETE /identity/api/v2/admin/videos/30 HTTP/1.1

成功删除自己的视频。

修改后面的ID值,成功删除其他人的视频。

挑战 8 - 免费获得一件物品

crAPI 允许用户退回他们订购的商品。您只需单击“退货订单”按钮,收到二维码并在 USPS 商店出示即可。要解决这个难题,您需要找到一种方法来获得您实际上并未退回的商品的退款。

购买完商品然后点击查看,可以看到一件商品,

点击可以查看商品详情



尝试修改,成功修改商品数量

挑战 9 - 将余额增加 1,000 美元或更多

首先修改商品数量



然后修改商品状态

在查看商品余额已经成功增加

SSRF

SSRF在车辆维修提交处

抓包,然后修改mechanic_api参数

成功触发SSRF

在线靶场和参考答案

后面跟API安全关系不多就不写了,如果不想安装docker也可以通过在线靶场进行测试,参考答案可以参考官网的文档

参考:

https://www.bleepingcomputer.com/news/security/toyota-mercedes-bmw-api-flaws-exposed-owners-personal-info/

https://samcurry.net/web-hackers-vs-the-auto-industry/

车联网安全WEB靶场实测的更多相关文章

  1. Web文件上传靶场 - 通关笔记

    Web应用程序通常会提供一些上传功能,比如上传头像,图片资源等,只要与资源传输有关的地方就可能存在上传漏洞,上传漏洞归根结底是程序员在对用户文件上传时控制不足或者是处理的缺陷导致的,文件上传漏洞在渗透 ...

  2. web渗透漏洞靶场收集

    最近将自己遇到过或者知道的web靶场链接奉上 0X01 DVWA 推荐新手首选靶场,配置简单,需下载phpstudy和靶场文件包,简单部署之后即可访问. 包含了常见的web漏洞(php的),每个漏洞分 ...

  3. 记一次metasploitable2内网渗透之samba服务的攻击

    80端口中对应一些web靶场,在这里不记录 111端口的利用是向rpcbind服务的UDP套接字发送60字节载荷,便可填充目标内存,搞崩主机系统.在这里也不记录 Samba服务简介 Samba是在Li ...

  4. CTF丨从零开始搭建WEB Docker靶场

    第十二届全国大学生信息安全竞赛即将开始,小伙伴们有报名参加的吗?大家在比赛前是否开始进行模拟演练了?今天,i春秋将与大家分享靶场搭建的相关内容,帮助大家更好的进行实操演练. 学习搭建Docker靶场之 ...

  5. (未完)经典Web漏洞实战演练靶场笔记

    记录下自己写的经典Web漏洞靶场的write up,包括了大部分的经典Web漏洞实战场景,做个笔记. 0x01 任意文件下载漏洞 if(!empty($_GET['filename'])){ $fil ...

  6. 搭建DVWA Web渗透测试靶场

    文章更新于:2020-04-13 按照惯例,需要的文件附上链接放在文首. 文件名:DVWA-1.9-2020.zip 文件大小:1.3 M 文件说明:这个是新版 v1.9 (其实是 v1.10开发版) ...

  7. Web For Pentester靶场(xss部分)

    配置 官网:https://pentesterlab.com/ 下载地址:https://isos.pentesterlab.com/web_for_pentester_i386.iso 安装方法:虚 ...

  8. 推荐一个Web漏洞靶场

    https://github.com/zhuifengshaonianhanlu/pikachu 暂时先空着 安装好是这样的 博主先去玩了,回来再写博客,2333

  9. Web性能优化:图片优化

    程序员都是懒孩子,想直接看自动优化的点:传送门 我自己的Blog:http://cabbit.me/web-image-optimization/ HTTP Archieve有个统计,图片内容已经占到 ...

  10. 千万pv大型web系统架构,学习从点滴开始

     架构,刚开始的解释是我从知乎上看到的.什么是架构?有人讲, 说架构并不是一 个很 悬 乎的 东西 , 实际 上就是一个架子 , 放一些 业务 和算法,跟我们的生活中的晾衣架很像.更抽象一点,说架构其 ...

随机推荐

  1. GAMES101课程 作业6 源代码概览

    GAMES101课程 作业6 源代码概览 Written by PiscesAlpaca(双鱼座羊驼) 一.概述 本篇将从main函数为出发点,按照各cpp文件中函数的调用顺序和层级嵌套关系,简单分析 ...

  2. Postman使用指导

    1. 下载好Postman,不用注册账号,直接离线使用 2. 软件的配置修改: 2.1关闭SSL认证 2.2关闭系统代理 2.3上传证书填写hosthost为服务器地址和端口:crt和key可以通过国 ...

  3. 5种典型 API 攻击及预防建议

    API 帮助跨多个设备互连多个应用程序或软件系统,定义它们可以发出的调用或请求的种类.调用的方式.应使用的数据格式以及应遵守的约定.API 已经发展成为重要的互连,支持不同应用程序架构之间的通信,促进 ...

  4. MySQL数据库:6、约束的概述及语法

    Python基础之MySQL数据库 目录 Python基础之MySQL数据库 一.约束概述 1.为什么要约束 2.什么是约束 3.约束的分类 4.查看当前表已有的约束 二.约束语法及用法 1.无符号 ...

  5. 学习ASP.NET Core Blazor编程系列十五——查询

    学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 学习ASP.NET Core Blazor编程系 ...

  6. Kafka技术专题之「性能调优篇」消息队列服务端出现内存溢出OOM以及相关性能调优实战分析

    内存问题 本篇文章介绍Kafka处理大文件出现内存溢出 java.lang.OutOfMemoryError: Direct buffer memory,主要内容包括基础应用.实用技巧.原理机制等方面 ...

  7. bitlocker加密如何找密钥解锁

    步骤1:在其他设备上登录[微软账号],地址:https://account.microsoft.com 步骤2:找到[自己的设备],查看[Bitlocker]密钥登录进去能看到[设备],找要解锁的那台 ...

  8. 区块链,中心去,何曾着眼看君王?用Go语言实现区块链技术,通过Golang秒懂区块链

    区块链技术并不是什么高级概念,它并不比量子力学.泡利不相容原则.哥德巴赫猜想更难以理解,但却也不是什么类似"时间就是金钱"这种妇孺皆知的浅显道理.区块链其实是一套统筹组织记录的方法 ...

  9. pickle兼容问题

    1 import pickle 2 3 with open('a.pkl',mode='wb') as f: 4 # 一:在python3中执行的序列化操作如何兼容python2 5 # python ...

  10. Python实验报告(第13章)

    实验13:Pygame游戏编程 一.实验目的和要求 学会Pygame的基本应用 二.Pygame的优点及应用 使用Python进行游戏开发的首选模块就是Pygame,专为电子游戏设计(包括图像.声音) ...