1. 程式人生 > >邏輯漏洞(1)

邏輯漏洞(1)

修復 使用 跳過 cnblogs .net 聯系 title 問題 spl

邏輯漏洞

邏輯漏洞是一種業務邏輯上的設計缺陷,業務流存在問題。
這裏說一下密碼找回漏洞、多線程條件競爭漏洞和支付漏洞。

技術分享圖片

密碼找回漏洞

1、 測試流程

先嘗試正確的密碼找回流程,記錄不同找回方式的所有數據包
分析數據包,找到有效數據部分
推測數據構造方法
構造數據包驗證猜測

2、 分類

* 郵箱找回
    一般是點擊郵件中的鏈接後會轉跳到修密碼的頁面,這就需要分析鏈接的token構造了,
    可以考慮是時間戳md5、用戶名或郵箱和隨機字符串md5等,一般是類似如下鏈接:
    http://domain/findpwd.php?u=xiaoming&token=MTIzQHFxLmNvbQ==
    http://domain/findpwd.php?id=374&token=2ad64bf14c714dbce88c7993663da7da
    當構造相應鏈接時就可以重置任意用戶的密碼
* 手機短信找回
    短信找回一般就是4位或6位驗證碼,暴力猜測吧
* 找回邏輯錯誤
    若惡意用戶A用15123333333找回密碼,此時收到驗證碼但不使用
    此時惡意用戶A再用受害者B的手機號找回密碼
    用戶A在B的驗證表單填入自己收到的驗證碼,發送
    此時跳轉的修改密碼頁面修改的就是用戶B的密碼
* 直接修改密碼
    在修改密碼時跳過選擇找回方式,直接訪問修改密碼的頁面進行修改
* 本地驗證
    隨意輸入一個驗證碼,開Burp抓包,forward,抓返回包,返回包裏可能有一個flag字段,
    若flag的值為1則跳轉到修改密碼頁面,所以只要修改返回包即可
* 服務端將驗證碼返回給瀏覽器
    在點擊獲取驗證碼時,服務器會將驗證碼發送給瀏覽器,抓包即可
* 驗證碼直接出現在url中
    當點擊獲取驗證碼時發出的請求鏈接中直接有code
* 密保問題找回
    回答密保問題,有時一些答案就在html源碼裏

支付漏洞

攻擊者通過修改交易金額、交易數量等從而利用漏洞,
如Burp修改交易金額、使交易數量為負數或無限大等。

* 在支付時直接修改數據包中的支付金額,實現小金額購買大金額商品
* 修改購買數量,使之為負數,可購買負數量商品,從而扣除負積分,即增加積分,
  或使購買數量無限大,無限大時則程序可能處理出錯,從而實現0金額支付
* 請求重放,在購買成功後重放請求,可實現"一次購買對此收貨"

漏洞修復

  • 對於密碼重置漏洞,可以使用復雜的token,使之不可被預測
  • 對於密碼重置漏洞,校驗refer,不使用本地校驗等
  • 對於支付漏洞,主要就是簽名了,或者https

值得一看的案例:

https://blog.csdn.net/hydrakingbo/article/details/52388183

https://www.cnblogs.com/xishaonian/p/6416659.html

http://www.freebuf.com/vuls/151196.html

介紹:僅供技術交流學習探討請勿用於非法用途,。本文部分資源來源於網絡,如有侵權請聯系版主刪除。

邏輯漏洞(1)