Web 批量分配漏洞 ( Ruby on Rails)
1️⃣ 發現點
Ruby on Rails 係一個常見會有 Mass Assignment 漏洞嘅 Web Framework。
發現方式:
檢查 API 或 Web 應用程式有冇批次更新用戶資料嘅功能
留意
user、account等 JSON 參數,睇下會唔會有隱藏欄位(例如admin: true、role: "superuser")係 Python / Flask / Django 亦可能有類似問題,特別係
request.get_json()直接存入 ORM 嘅地方
2️⃣ 測試 Payload
假設有以下 API
POST /update_user
{
"user": {
"username": "hacker",
"email": "hacker@example.com",
"admin": true
}
}可能伺服器執行:
如果
update()直接接受params,冇白名單保護,就可以 偷偷加上admin: true,獲取管理員權限!
3️⃣ 利用方式
攻擊方法 1️⃣ 找到 API
用
Burp Suite攔截請求,查看是否可以POST / PATCH / PUT更新用戶資料嘗試修改 JSON 內嘅
admin、role、is_superuser
2️⃣ 透過 SCP 抓取後端代碼
你用以下指令從目標機器抓
app.py,並用 VS Code 查看:
檢查
app.py內是否有active參數可以利用
3️⃣ 嘗試修改 active 參數
假設
app.py內有:
你可以發送:
成功繞過登入!
5️⃣ 連鎖漏洞 (Chained Exploitation)
如果 Mass Assignment 成功,下一步可以: ✅ 橫向移動 (Privilege Escalation)
變成
admin之後,試下可以開user list、改密碼、加 SSH Key
✅ 與 XSS / IDOR 結合
如果 API 允許你修改其他用戶資料,可以試
IDOR變更其他帳號如果可以改
email,可能可以配合Password Reset攻擊
✅ 寫 Shell / 提權
如果
app.py允許role=admin存取某個upload.php,你可以嘗試上傳 Webshell
最后更新于
这有帮助吗?