本文作者:Angus(Ms08067實驗室 SRSP TEAM小組成員)
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBHL0FWby9mZvwVZnFWbp1zczV2YvJHctM3cv1Ce-EEROJDO5pVNoNTTthmRPlnQsR2aWRVWywWViNTNX1EUCREVy40VhNDOVR1a1ITUvVDMkRHZrV2SxckY3ZkbRNUNwMFasJDVqB3MUlFey4EVwFzUyUUbjhnRUJlas1mWo50VRZkUV9URKZlV1ZFSihlVuJWUSZlUUhmakRDO5pVdCNDW2wWbZRXMywUdO1GTqx2RjhXNpVGcKdlY0lTeMZTTINGMShUYvwlbj5yZtlmbkN3YuQnclZnbvN2Ztl2Lc9CX6MHc0RHaiojIsJye.jpg)
0x00:前言
在漫漫滲透路中,“業務邏輯漏洞“一詞,想必各位都不陌生。行業内統一把程式邏輯不嚴謹或複雜導緻的邏輯錯誤,造成的一系列危害的問題稱為邏輯漏洞。業務邏輯漏洞覆寫面極廣,可以說存在于目标的各個方方面面。網上對于業務邏輯的文章多到數不清,但是能盡可能詳細的歸納總結的卻少之又少。因為一人一個思想,對于不同人員開發的系統,邏輯問題也各不相同,是以菜雞我主要是針對于通用的子產品的測試點,盡可能的細化的整理。能讓大家腦海中能有個大緻的測試思維導圖。
0x01:通用測試點
使用者類
主要包含使用者的登入、密碼找回、個人資訊查閱等測試點
登入子產品
使用者名枚舉
密碼爆破
登入繞過 //篡改伺服器傳回包的狀态碼資訊
登入憑證未及時失效 //登入成功後,伺服器傳回的使用者憑證未及時失效或憑證時間過長,導緻可重複利用進行登入。
登入越權 //篡改伺服器傳回包的使用者 id 參數,來登入他人賬号、或請求包的使用者 ID
空密碼登入//抓包将 password 字段改為空進行發送
SQL 注入//存在注入,可利用萬能密碼進行登陸等
Cookie 仿冒攻擊//通過修改 Cookie 中的某個參數來實作登入其他使用者
Session 會話固定攻擊
Cookie\Session 機制缺陷//網站會利用 Cookie 是否為空、Session 是否為 true 來
判斷使用者是否可以登入,隻要構造一個 Cookie 或 Session 為 true 就可以繞過認證登入
注冊子產品
使用者批量注冊
使用者注冊資訊覆寫 //通過對已存在的賬号再次進行注冊,進而對原有的賬号注冊資訊進行覆寫
密碼找回、重置子產品
前端校驗繞過導緻任意重置 //篡改伺服器傳回包狀态碼
驗證碼繞過//詳情見‘驗證碼類’
重置密碼流程跳過 //篡改請求包參數,跳過校驗步驟,直接對目标賬号進行密碼重置
越權篡改他人密碼//先進行合法校驗再篡改 ID 為他人使用者進行越權重置
Session 覆寫 //同一浏覽器,首先輸入自己的賬戶進行郵箱密碼找回,進入郵箱檢視連結,接着輸入他人賬戶,進行密碼找回,傳回剛剛自己的郵箱點選連結,由于 session 覆寫導緻了,這個連結成為了修改他人密碼的連結,成功修改他人密碼
密保問題缺陷 // 驗證邏輯可為空,通過密碼保護問題找回密碼,抓包,将密碼保護問題删除,直接修改密碼||密保問題答案直接暴露在頁面源代碼中
CSRF 攻擊
個人資訊子產品
水準越權 //手機号、郵箱、密碼等資訊篡改,個人資料越權周遊檢視
垂直越權 //同水準越權
CSRF 攻擊
XSS 攻擊
SQL 注入攻擊
活動類
主要包含報名、參與遊戲活動、邀請活動等測試點
請求重放 //批量報名,消耗活動資格、積分刷取等
XSS 蠕蟲攻擊
流程亂序 //跳過部分校驗流程,進行報名、參加
短信内容可控 //比如好友邀請功能,可對短信内容進行編輯,進行釣魚攻擊
交易類
主要包含資金交易類型業務測試點
并發邏輯漏洞 //常見于購買限量商品、領取優惠券等功能上
支付繞過
交易金額/數量篡改 //修改對應參數、或替換訂單 ID、商品 ID 等||金額負數、整數溢出等
訂單号、收貨位址等資訊越權周遊、篡改
請求參數幹擾 //金錢做了簽名認證之後,修改後不通過,但是在裡面仍然會有一個參數對金額産生影響導緻問題産生
強制攻擊 //強制攻擊發生在暴力破解的情況下,如果一個商家運用一個自己的網店,接入第三方支付接口,由于設計上的不當導緻商家與第三方支付約定的密鑰 Key 可以單獨被 MD5 加密,導緻可以使用 MD5 碰撞技術對密鑰進行破解,攻擊者可以設計簡單的密鑰加密資訊使得 MD5 加密是可以用 MD5 碰撞技術進行暴力破解
金額機關替換 //産生在 paypal 類似的國際支付的場景
收款人資訊篡改 //收款二維碼可控等
順序執行缺陷 //正常的邏輯是 a-b-c-d 循環漸進的進行流程操作。這個時候就會産生邏輯問題:可以直接從中繞過某一個過程進入到下一步操作。如果說有一項是支付的操作,那麼也就會産生支付繞過,如果說有一項是驗證機制,就會繞過驗證直接進入下一步。
訂單未捆綁 //确定支付之後還可以将商品加入購物車:把商品放入購物車點選下單支付,會跳轉到微信,支付寶等第三方支付平台。這個時候還可以繼續在購物車中加入商品,支付結束之後,商家發放的商品是現在的購物車裡面的東西
服務類
主要包含目标類型給予使用者的服務功能測試點
業務服務接口未授權越權 //更多于 JS 裡的接口洩露、FUZZ 模糊測試等
重播攻擊 //在短信、郵件調用業務或生成業務資料環節中(類:短信驗證碼,郵件驗證碼,訂單生成,評論送出等),對其業務環節進行調用(重放)測試
内容可控 //可對短信内容、郵件内容進行編輯,一般常見于邀請體驗類功能
多餘敏感資訊回顯 //針對于一些查詢接口,可能傳回該使用者綁定的其他資訊
流程跳過 //對于部分校驗流程可繞過,例如一些開卡、貸款服務等業務申請等服務
CSRF 攻擊
XSS 攻擊
SQL 注入攻擊
SSRF 攻擊
任意檔案上傳
任意檔案下載下傳/讀取
驗證碼類
主要包含重要操作點時的驗證碼機制測試點
圖形驗證碼
圖形驗證碼可自動識别進行暴力破解
圖形驗證碼可複用導緻暴力破解
圖形驗證碼未合理校驗導緻暴力破解 //删除驗證碼參數、驗證碼為空或 cookie 中的值
圖形驗證碼DDOS //篡改驗證碼的長寬參數
短信驗證碼
短信驗證碼弱可暴力破解 //主要應用于四位純數字驗證碼||部分站點會采用固定的幾種驗證碼組合,随機使用。
短信驗證碼繞過 //篡改傳回包狀态碼繞過,主要應用于先進行短信驗證碼校驗等場景(密碼重置找回、登入、修改手機号等子產品)||未正常進行短信驗證碼校驗,例如短信驗證碼為空,成功進行登入
萬能驗證碼(000000、111111、0000、1111) //主要是應用于登入功能,開發人員便于系統測試時,所設定的萬能短信驗證碼,投産時并未删除,導緻可被利用
短信驗證碼回顯//1、網站頁面傳回2、伺服器傳回包傳回
短信炸彈(重播攻擊) //直接重放測試、或在手機号末尾添加空格,手機号前添加“+86、逗号、分号”、參數污染(再添加一個 phone 等參數)、删除或篡改 cookie 中的部分參數(伺服器對于短信擷取的限制取決于 cookie 中的部分參數)、請求參數修改大小寫、傳回包狀态碼篡改、參數周遊。
未綁定使用者憑證 //通過他人手機号找回密碼,抓包,将他人手機号替換成自己的手機号,擷取驗證碼,送出後修改密碼||通過自己手機号找回密碼,擷取驗證碼後抓包,将資料包中的 username 改為他人使用者名,送出後成功修改他人密碼
郵箱驗證碼
郵箱綁定缺陷 //通過郵箱找回密碼,URL 連結中修改 使用者 ID 為他人,郵箱不變,之後通過連結可以将他人賬戶綁定為自己的郵箱,之後通過郵箱找回密碼
郵箱 token 缺陷(未綁定、可周遊枚舉) //通過郵箱找回密碼,通路連結重置密碼,輸入新密碼後送出時抓包,雖然有 token,但是依然可以直接修改 使用者 ID 進而修改他人密碼||有的郵箱 token 可能會采用 Unix 時間戳 + md5 的方式,可自行爆破枚舉,
郵箱校驗繞過 //同短信驗證碼
0x02:小結
業務邏輯顧名思義,重點便在于邏輯上,當進行業務邏輯測試時,牢記一點“不放過、掌流程、理關系”,也就是在測試中,不要放過任何一個可操作參數,或者對不存在的參數進行 fuzz 測試,完整的對正常的業務流程走一遍,掌握并了解清楚其運作的整體過程,理清參數之間、業務之間的關系。
招新
微信聯系方式:cos2606596924,
滿足以下要求均可嘗試
1.至少會一門程式設計語言
2.漏洞平台上送出過漏洞超過20個
3.每月一文章分享(考慮有些要上班)
掃描下方二維碼加入星球學習
加入後會邀請你進入内部微信群,内部微信群永久有效!
目前25000+人已關注加入我們