(中文) [安全漏洞][案例#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 :

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

Leave a Reply

Your email address will not be published. Required fields are marked *


five + 7 =