banner
raye~

Raye's Journey

且趁闲身未老,尽放我、些子疏狂。
medium
tg_channel
twitter
github
email
nintendo switch
playstation
steam_profiles

邏輯漏洞學習總結(一)

實戰經驗還是比較少,但是打 CTF(水比賽)的經歷很多🐶,感慨自己對於漏洞的理解不夠深刻,於是準備開始從邏輯漏洞先開始總結

參考大佬們的經驗,簡單總結了下邏輯漏洞的思維導圖

image

一些常見的邏輯漏洞分析#

任意密碼找回 / 任意手機號修改#

經典流程:
驗證 old 手機號 /old 密碼 -> 提供新的手機號 / 密碼 -> 提交修改

第一步,驗證原有手機號或者密碼,如果可以修改返回的 response 包,那麼就可以繞過這一步驟,

此時如果第三步沒有驗證第一步認證是否成功,則可以任意綁定手機號 / 修改任意密碼

並發抽獎 / 簽到#

抽獎、簽到並發問題,通過多次重放可以累計登錄天數,獲得多個抽獎券等

一般的解決辦法都是通過 CAS 操作來進行的,CAS 操作包含三個參數:

  1. 內存位置 V
  2. 期望的原值 A
  3. 新值 B

CAS 首先檢查 V 種的當前值是否和 A 匹配,如果匹配,則更新為 B,否則不作操作。這裡的整個操作都是原子的,從而保證同步

前端 JS#

多翻翻前端 JS,可以找到很多點,如:

  • 隱藏的接口
  • js source map 文件

主要參考這篇:
[https://xz.aliyun.com/t/9453]

登錄態洩露#

在一些 H5 場景、小程序場景中,很多開發者偷懶,其實也是因為登錄態的設計過於複雜,導致簡單的通過 openid 等方式直接驗證

這種案例就比較多了,多見於微信生態體系下

報錯頁面#

報錯頁面也是可以返回很多信息的,最常見的就是 CTF 種通過報錯頁面來實現模版注入

實戰場景中,報錯頁面可能會洩露很多敏感的信息,比如登錄態🐶(還真遇到過

Google hacking 擴展#

知道了這麼多邏輯漏洞,怎麼去測試呢?

通過 Google hacking 語法能找到很多的站點,一個個測就好了,比如我們找支付功能的,就可以通過這樣搜素

inurl:m intitle:訂單詳情 inurl:id=
我的訂單 訂單詳情
inurl:order 訂單詳情
inurl:wap intitle:訂單詳情
inurl:m intitle:訂單詳情
inurl:php intitle:訂單詳情
title:訂單詳情 手機號
site:.com title:訂單詳情
title:訂單詳情 身份證

image

通過這個思路就能找到很多實際的支付站點,並且一個個去驗證測試

如果漏洞比較通用的話,就可以編寫下 poc 集成到 xray 或者其他被動掃描工具了

預計下一篇就來分享下對這些站點的挖掘🤔,先水完這一篇好了

參考資料#

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。