邏輯漏洞之支付漏洞

FLy_鵬程萬里發表於2018-06-01

支付漏洞

烏雲案例之順豐寶業務邏輯漏洞

案例說明

順豐寶存在支付邏輯漏洞,可以允許使用者1元變1億元。這個漏洞在其他網站很難存在,原因是頁面互動都使用了對欄位做簽名。但是順豐寶沒做簽名,導致支付金額可以被修改為任意數值。猜測成因是開發人員為了快速實現功能,而忽略了其中資料簽名的步驟。可以想象,如果我充值1個億,然後再使用取款功能,會產生神馬效果。

利用過程

1 登入順風寶檢視餘額


2 充值,選擇招商銀行。填寫充值金額1,如下圖:


提交之後如下:


3 開啟firefox的tamper,點選支付,擷取資料包,修改引數Amount為一分


4 提交跳轉到招行支付


5 支付成功後,招行扣去一分


6 查詢餘額



烏雲案例之樂視商城邏輯支付漏洞

案例說明

訂單的價格在支付連結中出現,導致使用者可以修改任意金額購買產品

利用過程

1 下單後選擇支付,如圖:


2 注意下面的連線,orderPrice引數為商品總額


3 將價格改成0.1



烏雲案例之讀覽天下支付邏輯漏洞

案例說明

通過替換支付訂單號的方式,來完成花小錢買大東西。同時生成兩個訂單號,一個貴的一個便宜,首先支付便宜的,銀行往回返回的時候,替換訂單號,然後就可以完成兩個訂單的同時支付。

漏洞成因

服務端只檢查支付是否完成,並沒有確認訂單金額與銀行支付金額是否相同,過分信任客戶端提交的資料

修復方案

檢查支付完成後價格和買的產品的價格是一樣的。

烏雲案例之天翼雲盤通支付邏輯漏洞

案例說明

天翼雲-雲盤通設計缺陷,可提交負人民幣的訂單。

利用過程

1 選擇套餐如圖:


2 提交訂單然後我們抓包,將購買年限改成負數


3 提交資料包後如圖:


烏雲案例之藥房網訂單提交邏輯漏洞

案例說明

藥房網訂單提交存在邏輯漏洞可對企業造成經濟損失

利用過程

1 生成訂單


2 使用Burp截斷資料包,修改運費為一元



3 提交資料包


烏雲案例之淘美網繞過支付

案例說明

淘美網重置處存在邏輯漏洞,可繞過支付直接充值成功

經過測試發現支付成功後流程走至如下連結:

http://www.3need.com/index.php?controller=site&action=payok&out_trade_no=充值訂單號

只要提供對應的充值訂單號 就可以繞過支付直接充值成功。

利用過程

1 新註冊個賬號進行測試


2 賬號餘額0


3 我們去充值,這個過程用burpsuite抓包,金額隨意寫



4 抓到支付訂單號然後構造連結:



5 直接訪問這個連結


6 接下來美女資訊隨意看了,不夠再充


烏雲大神的修復方案

1 和銀行交易時,做資料簽名,對使用者金額和訂單簽名。

2 敏感引數不要明文放在URL中

3 服務端效驗客戶端提交的引數

4 在服務端計算金額的時候,一定要判斷是否為正數。

5 支付過程中加一個伺服器生成的key,使用者校驗引數有沒有被串改。

6 如果一定需要用URL傳遞相關引數,建議進行後端的簽名驗證

7 訂單金額和充值介面返回的資料進行校驗

8 提交訂單時後臺判斷單價是否與資料庫中相符,如不符則返回錯誤。

9 支付時應從伺服器拉取資料,而不是直接讀客戶端的值!!


相關文章