邏輯漏洞之支付漏洞詳解


參考文章

本片文章僅供學習使用,切勿觸犯法律!


概述


總結


一、漏洞介紹

所有涉及購買、支付等方面的功能處就有可能存在支付漏洞。


二、漏洞原理

一般支付流程:

用戶用錢包加上優惠券/折扣券確認購買商品的單價、數量以及購買時間,提交給平台或商家確認無誤后,確認支付信息,報告購買信息。其中有三個重要的因素:用戶、商品、平台/商家。這三個因素在支付流程中都有可能造成支付漏洞。


三、漏洞危害

對企業和用戶的危害極大。


四、利用前提

  • 目標網站有支付系統
  • 在字符流程中,對於用戶、商品、平台/商家三個重要因素之間有漏洞。

五、挖掘利用

1、一般類型

1.描述

這里的一般類型主要是指在支付流程中,由三個因素之間產生的漏洞。

2.挖掘

尋找網站的支付系統,或兌換系統,抓包判斷有沒有敏感信息可以修改。

3.利用

1. 修改支付價格
在支付流程中,提交購買信息、確認支付、確認購買的流程中,如果相互之間沒有做好驗證機制,就有可能出現修改支付價格的漏洞。
在這三個步驟中,可以嘗試抓包,修改支付價格。

2. 修改支付狀態
這個問題是沒有對支付狀態的值跟實際訂單支付狀態進行校驗,導致點擊支付時抓包修改決定支付或未支付的參數為支付狀態的值從而達到支付成功。

3.  修改購買數量
抓包,嘗試修改購買數量,如果修改購買數量后,價格不變,亦或者修改購買數量為負數,如果價格為負數,同樣會導致支付問題的產生。

4.  修改優惠券、積分
如果優惠券、折扣券、積分等可以換取相應的物品,那么也有可能出現支付漏洞,這個流程與一般支付流程類似,可以嘗試挖掘。

  1. 修改優惠劵金額
    具體看優惠券的兌換方式,如果的是滿減型,那么就嘗試修改優惠券的金額、修改商品價格。如果是折扣類型,那么就嘗試澤折扣程度。
  2. 修改優惠劵金額及業務邏輯問題
    具體看優惠券的業務邏輯,比如說,如果支付價格為0時,會報錯,提示購買失敗,這是因為網站后台不允許提交0元的商品購買訂單。
  3. 修改積分金額
    修改積分金額與上面幾點類似,同樣是抓包判斷能不能修改相關信息。

5. 修改支付接口
比如一些網站支持很多種支付,比如自家的支付工具,第三方的支付工具,然后每個支付接口值不一樣,如果邏輯設計不當,當我隨便選擇一個點擊支付時進行抓包,然后修改其支付接口為一個不存在的接口,如果沒做好不存在接口相關處理,那么此時就會支付成功。

6. 多重替換支付
支付過程中,網站沒有驗證商品價格和用戶的支付價格。首先去產生兩個訂單,這兩個訂單商品是不一樣的,其價格不一樣,如果服務端沒有做好這相關的驗證,那么在支付的過程當中抓包,修改其訂單值為另一個訂單值,最后支付,這時就可以用訂單一的支付價格買到訂單而的商品。

7. 重復支付
一些交易市場有一類似於試用牌子或者其它,這個試用牌子可以依靠簽到獲得,而這個牌子的作用可以去試用一些商品,在你進行試用的時候會扣掉你的試用牌子,當你試用完成或者主動取消試用時,試用牌子會返回到賬戶當中。如果沒有進行對訂單多重提交的校驗,那么就可導致無限制刷牌子,比如,你試用時抓包,然后你每次試用都會產生一個訂單號,然后利用剛抓到的數據包進行批量提交,你就可以看到每次提交的訂單號不一樣,然后這時你再看訂單可以看到同一個商品的無數訂單,但試用牌子數只扣了你第一個試驗時的牌子數,那么這時你申請批量退出試用,那么這么多訂單,每退一個就會退相應的牌子數量到賬戶當中,這就構成了無限制刷得問題。

8. 最小額支付
在修改支付價格時,如果沒有支付成功或兌換成功,並不能說明該網站不存在支付漏洞。注意網站的最小支付額,網站可能會對此進行校驗,小於這個最小支付額,無法購買,也有可能兌換的物品為空。

9. 值為最大值支付問題
以前也是看到過相關的例子,一些網站比如你購買商品,這里有2個思路修改值,1是直接修改支付金額值為最大值,比如999999999,或者修改附屬值,如優惠卷,積分等為999999999,如果這里邏輯設計有問題,那么其支付金額會變為0。

10. 無限制試用
一些網站的一些商品,比如雲系列產品支持試用,試用時期一般為7天或者30天,一個賬戶只能試用一次,試用期間不能再試用,但如果這個試用接口沒做好分配那么很容易導致問題的發生。

2、特殊類型

1.描述

可以嘗試用其他漏洞觸發支付漏洞,比如說SQL注入漏洞、越權漏洞等。

2.挖掘

詳情請見其他漏洞挖掘。

3.利用

1. 越權支付
在支付當中會出現當前用戶的ID,比如:username=XXXXX,如果沒有加以驗證,其支付也是一次性支付沒有要求輸入密碼什么的機制,那么就可以修改這個用戶ID為其它用戶ID,達到用其他用戶的賬號進行支付你的商品。

  1. 多線程並發
    多線程並發問題就是沒有實時的處理各種狀態所導致的問題,之前挖掘過刷錢問題,就是利用該思路。
    平台的錢包在提現時,沒有任何驗證碼或者校驗機制,只要輸入提現金額就可以提現,並且是秒到賬,如果什么負數,修改金額都測試過了都不行,那么你就可以試試多線程並發問題。利用方式就是利用burpsuite的intruder工具,頻繁向網站申請提現。

六、修復防范

  • 對支付流程的每個環節進行校驗,並且防止跳過某一個環節。
  • 用戶確認購買后,立即驗證商品價格(商品單價、商品數量、折扣優惠)、訂單價格和到賬金額。
  • 對一些優惠券、折扣券的使用方式進行測試。
  • 修復防范網站其他漏洞。

七、提出問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM