本文僅以提升資訊安全、教育與研究為目的,所有測試與描述皆以保護使用者與系統安全為優先。針對文中所揭露之漏洞,已由 HITCON ZeroDay 協助通報該組織。
以下內容已去識別化
前言:
為何我會發現這些漏洞呢,因為當時有一群人很臨時很臨時很臨時(差不多是連假前一個星期跟我說要定連假時間住宿的那種臨時)的跟我說要出去玩。
找不到,根本找不到地方住,後來我就使用了本次的網站尋找我們的目的地,最後終於找到一個看起來還行的地方
那為何我會特別找他們的漏洞去回報呢,因為我是在註冊完後,且付錢後才發現那些漏洞的,上面可是有我的個資阿!!!!!!
為了我的個資以及帳號安全,只好來漏洞回報一下了QQ
描述:
此次我發現了兩個漏洞,於是我分成兩種漏洞進行回報,所以這邊也分兩篇文章寫好了!
那就先從第一個部分開始吧~
漏洞名稱: IDOR 導致 PII 洩漏
步驟重現:
備註:以下的內容會稍做修改,以保護該網站的安全
當使用該網站定好要去的目的地後,他會先要求付款,付款完畢後即可到某個地方下載入住憑證
當點擊列印入住憑證時,他會將你跳轉至一個連結,而不是給你一個下載檔
https://www.XXXXXXXXX.com/XXXXXXX/XXXXXXXXXX/XXXXX/123456789.pdf畫面大概長這樣:

但我後來發現,這連結居然不只有登入時能訪問,用無痕模式也能訪問,將連結丟給別人,未登入的情況下也能訪問
這就表示所有的訂單基本上是公開在外網上,且沒做任何的身分確認
概念驗證:
由於該連結的結構如下,我發現最後面的數字就是訂單號碼,意思是我只要能猜出其他人的訂單號碼,即可查看他們的所有訂單資料
https://www.XXXXXXXXX.com/XXXXXXX/XXXXXXXXXX/XXXXX/123456789.pdf先製造一個拿來列舉的 list 出來,從 123456789 開始,每次減 1,直到數字為1,並存成 list.txt 檔案
seq 123456789 -1 1 > list.txt清單內容大概像這樣~

再使用 ffuf 工具配合剛剛生成的 list.txt 來列舉訂單編號,他會將剛剛創好的 list 一個一個套入到 FUZZ 的參數中
ffuf -w list.txt -u https://www.XXXXXXXXX.com/XXXXXXXX/XXXXXXXXXX/XXXXX/FUZZ.pdf可以查看到有很多結果,但他們網站設定,如果該URL不存在則會自動跳轉至主頁面,所以輸出的結果不全是實際存在的訂單
他們的訂單編號不是有順序性的,所以要自己篩選

看上圖輸出的結果,Lines非1317的即為真實存在的訂單,所以我們可以使用
ffuf的 -fl 參數來過濾 Lines 為 1317的值,即可輕鬆的取得實際存在的訂單編號
ffuf -w list.txt -u https://www.XXXXXXXXX.com/XXXXXXXX/XXXXXXXXXX/XXXXX/FUZZ.pdf -fl 1317這樣所有的輸出結果即為真實存在的訂單明細了~

再將得到的訂單編號與網址後面的編號對調即可查看他人的訂單編號
( 更改[ ]內的數字 )
https://www.XXXXXXXXX.com/XXXXXXXX/XXXXXXXXXX/XXXXX/[123456789].pdf

於是,所有客戶的訂單明細,包括姓名電話,旅遊目的地皆一覽無遺
那這又會造成甚麼影響呢??
影響:
- 可以非常輕鬆的取得所有客戶的訂單資料以及個資
- 第二點是比較嚴重的問題了,若惡意第三方取得客戶資料,則可能進一步以真實訂單細節 ( 例如:營區位置及日期 )為憑,對客戶進行電話或簡訊詐騙、假冒客服或要求提供更敏感資訊(例如付款資料或身分驗證),進而造成使用者財務損失與個資濫用。 (而且通常定營區都會提早訂,所以得到的訂單資料都是尚未履行的)
- 商譽影響