渗透测试-逻辑漏洞出现场景、利用方式总结
邏輯漏洞出現場景、利用方式總結
文章目錄
- 邏輯漏洞出現場景、利用方式總結
- 一、前臺模塊
- 二、密碼找回模塊
- 三、登錄模塊
- 四、業務邏輯層模塊
- 五、案例分享
- 1、邏輯支付
- 六、漏洞思考組合拳
- 1、Self-xss+Csrf組合拳
- 2、邏輯漏洞組合拳
- 3、設計缺陷組合拳
- 4、第三方登錄
- 此外總結了一些思路一 、針對業務處
- 二、漏洞處
- 驗證碼問題
- 短信轟炸
- 水平越權
- 數據泄露
- 三、支付邏輯漏洞
一、前臺模塊
1、短信轟炸
參數修改短信轟炸,可以直接修改手機號或者其他參數
Cookie短信轟炸
根據業務的判斷
2、手機號遍歷枚舉
繞過風控繼續遍歷
簡單遍歷結
繞過風控方法:修改下面參數,讓其構成一個正常參數從而實現繞過
3、繞過驗證
刪除參數,刪除驗證碼參數導致驗證碼被繞過
修改參數將驗證碼修改成0000,修改參數中的驗證碼導致邏輯錯誤繞過
構造驗證碼key值原理
4、批量初測用戶
注冊時數據包存在userid 代表一個新用戶的誕生,將userid的數進行遍歷,可批量注冊用戶
5、任意用戶注冊
驗證碼爆破,驗證碼沒有任何頻繁攔截時進行簡單爆破
繞過驗證碼,修改驗證碼參數,刪除參數
返回包中的驗證碼直接顯示
二、密碼找回模塊
1、短信驗證碼以及郵箱驗證碼
修改參數
刪除參數
爆破驗證碼
2、URL參數修改以及繞過步驟找回密碼
鏈接中的參數修改,鏈接中存在key=xxx以及code=xxx 分為有加密跟無加密的有些直接顯示用戶名修改直接就重置,有些顯示為加密的值將值嘗試是否可以組成而達成密碼重置
繞過步驟,URL中可能會存在每一個步驟的過程比如 find1 find2 find3 fin4等等,有些步驟會出現在post數據里面繞過,比如find1的時候直接將find1 改為find4 直接進行最后一步修改密碼
三、登錄模塊
任意用戶登錄,修改參數userid或者其他可疑的參數登錄了其他用戶的賬號
登錄憑證劫持,可能在某些app中把用戶的token丟在了url中,如果這條鏈接被利用跟第三方缺陷可能導致用戶的token被劫持
短信驗證碼
四、業務邏輯層模塊
- 個人中心
url中的參數越權
購物與活動功能
找到喜歡的商品,添加購物車,提交訂單,支付訂單,基本的流程是這樣的,但是這三個流程可能會存在業務設計的缺陷,其他可以通過修改產品的數量,產品的實踐,優惠券,產品的id,sku值等等
修改金額
商城活動
抽獎、例如商品中的輪盤抽獎可以通過修改后抽中想要的產品
領取優惠券一些領取優惠券,可以通過修改一個用戶領取多張
五、案例分享
1、邏輯支付
第一步,打開xx你會發現有一個騎手商城,點進去里面一個最貴的商品,然后支付,支付的時候抓包
2、找到最便宜的產品,點擊購買抓包,然后將剛才那個數據包,全部內容,替換過去
點擊提交會顯示系統錯誤,重新支付,但是你多點幾次,ok訂單價格替換掉,支付價格也替換了
2、密碼重置
輸入一個正常要重置的手機號,然后抓包將數據包中的重置手機號替換成自己的手機號來接受短信驗證碼,在獲取驗證碼后直接進入設置新密碼
然后再填寫的一個新密碼的時候抓包,這里有顯示一個重置的手機號,直接填寫成要重置的手機號直接更換
六、漏洞思考組合拳
1、Self-xss+Csrf組合拳
在商城中我提交訂單的同時會彈出一個信息框,這個信息框可以在提交的同時做出修改,將信息框要彈出的信息抓包修改成一句Javascript,存在一個self-xss,那么這個xss并不是毫無意義
簡單的用bp生成的一個poc
受害者打開 鏈接后
2、邏輯漏洞組合拳
購買一件最便宜的商品,再創建一個高價值的訂單,再將訂單退貨抓取一個數據包,價格參數中的oid修改為高價值的產品訂單,那么在訂單中就會把一個還未支付的訂單給退款了
3、設計缺陷組合拳
因為系統設計的缺陷,可以修改imgurl參數中的鏈接,但是需要繞過,鏈接中必須存在白名單url
4、第三方登錄
這里可以修改uri,構造自己payload
受害者訪問構造的payload,登錄了網站,這里就獲取到了登錄鏈接受害者所用的token了
此外總結了一些思路一 、針對業務處
- 登錄
1.短信轟炸/驗證碼安全問題/密碼爆破/郵箱轟炸
2.SQL注入
3.撞庫
4.抓包把password字段修改成空值發送
5.認證憑證替換/比如返回的數據包中包含賬號,修改賬號就能登陸其他賬號
6.Cookie仿冒
7.修改返回包的相關數據,可能會登陸到其他的用戶
- 找回密碼
1.短信郵箱轟炸/短信郵箱劫持
2.重置任意用戶密碼/驗證碼手機用戶未統一驗證
3.直接跳過驗證步驟
- 購買支付/充值(主要還是利用抓包需要仔細的去看每一個可用參數)
- 交易金額/數量修改,替換支付模塊 (這里也就是更換了支付的模塊金額)
-
交易信息訂單編碼/導致信息泄露
-
整數溢出,int最大值為2147483647,超過最大值
-
修改充值賬戶
-
支付繞過
-
抽獎活動
刷獎品/積分
并發
- 訂單信息
訂單信息遍歷/泄露
訂單信息泄露導致用戶信息泄露
刪除他人訂單
- 會員系統
修改個人信息上傳文件,上傳帶彈窗的html
如遇上上傳xlsx/docx,可能存在xxe,上傳惡意的文檔盲測
圖片上傳也可能遇到imagereagick命令執行,上傳惡意圖片
視頻上傳如果使用ffmpeg<3.2.4(視頻按幀分割成圖片),上傳惡意avi盲測ssrf
用戶橫向越權訪問/遍歷/導致用戶信息泄露
SQL注入/個人簡介處存儲XSS 個人信息注冊的名稱也可以插入xss
明文傳輸賬號密碼
修改信息處無session/token導致csrf
POST/COOKIE注入
- 評論
POST注入/存儲XSS
無session/token導致CSRF
二、漏洞處
驗證碼問題
-
萬能驗證碼
-
返回包中存在驗證碼
-
刪除驗證碼或者cookie中的值可以爆破賬號密碼
短信轟炸
-
一直重放
-
刪除修改cookie,重放數據包
-
遍歷參數發送數據包
-
手機號后面加空格或者前面加其他的比如+86或者逗號分號等,然后重發數據包
-
請求參數修改大小寫,或者添加請求參數比如&id=1
-
一個站的登陸處可能做了防護,但是再找回密碼處可能沒有安全防護,或者在注冊流程中沒有安全防護,所以說多測試接口
-
如果對手機號一天次數進行了限制的話,還可以在進行發送一次短信,DO intercept之后修改為成功回顯
水平越權
-
主要登陸后還是修改參數,主要找到多個接口不斷測試
-
關注網頁源代碼,有時候會有表單,但是被bidden(隱藏標簽)給隱藏起來了,可以修改返回包然后嘗試獲取數據檢測
-
多個賬號,主要分析請求參數
數據泄露
- 在找回密碼處,填寫數據后抓包查看返回信息,有可能存在敏感數據返回
任意用戶密碼重置
目前大部分都是在修改密碼處參數修改
有些是前端驗證
三、支付邏輯漏洞
1.邊界值問題 : 正常的邏輯是用戶購買商品,然后價格累加得到一個總價進行扣款。這個時候就會產生邏輯問題:如果說用戶購買的商品是負數了,那么計算的總數就是負數。反過來錢給用戶
2.順序執行缺陷:正常的邏輯是a-b-c-d 循環漸進的進行流程操作。這個時候就會產生邏輯問題:可以直接從中繞過某一個過程進入到下一步操作。如果說有一項是支付的操作,那么也就會產生支付繞過,如果說有一項是驗證機制,就會繞過驗證直接進入下一步。
3.金額直接傳輸導致篡改:直接對下單的金額進行修改值,這里可以使用fd或者burp抓包
4.確定支付之后還可以加入購物車:把商品放入購物車點擊下單支付,會跳轉到微信,支付寶等第三方支付平臺。這個時候還可以繼續在購物車中加入商品,支付結束之后,商家發放的商品是現在的購物車里面的東西。
5.請求重放:購買成功之后,繼續重放請求,可以讓購買的商品一直增加。購買成功之后,會有一個銀行對商戶網站跳轉的過程,如果反復進行操作,有幾率會導致商品反復購買和增加,但是不需要付更多的錢。
6.請求參數干擾:金錢做了簽名認證之后,修改后不通過,但是在里面仍然會有一個參數對金額產生影響導致問題產生。
7.訂單替換:訂單替換發生在支付之后的事件處理,同時向服務器發起二次支付請求一個多一個少,支付金額少的,然后支付之后進行替換,告知服務器訂單支付完成,并且過程可以反復的回放。
8.欺詐:需要兩個收款人,一個是正常的商家,一個是偽造的商家
9.單位替換:產生在paypal類似的國際支付的場景。
10.用戶替換:在支付過程中發生用戶替換現象,首先登陸自己的賬戶,然后取得另外一個人的賬戶名等有效信息,在業務流程中用對方的用戶名替換自己的用戶名,用對方的余額購買完成后,再替換自己的賬戶名,這樣就形成別人的錢買自己的東西
11.強制攻擊:強制攻擊發生在暴力破解的情況下,如果一個商家運用一個自己的網店,接入第三方支付接口,由于設計上的不當導致商家與第三方支付約定的密鑰Key可以單獨被MD5加密,導致可以使用MD5碰撞技術對密鑰進行破解,攻擊者可以設計簡單的密鑰加密信息使得MD5加密是可以用MD5碰撞技術進行暴力破解。
12.秘鑰泄漏:內置支付功能的app為了設計上的方便有可能會把Md5或者是RSA的私鑰泄漏導致攻擊者反編譯apk之后獲取密鑰信息使得交易信息可以被篡改。
13.函數修改:apk反編譯之后的函數修改,可能導致商家在最后一步向支付方提交訂單時未驗證信息的準確性,仍然被篡改。
14.heart bleed:SSL(安全套接層)協議是使用最為普遍網站加密技術,而OpenSSL則是開源的 SSL 套件,為全球成千上萬的web服務器所使用。Web服務器正是通過它來將密鑰發送給訪客然后在雙方的連接之間對信息進行加密。URL中使用 https打頭的連接都采用了SSL加密技術。在線購物、網銀等活動均采用SSL技術來防止竊密及避免中間人攻擊。
該漏洞被歸為緩沖過度讀取。緩沖過度讀取錯誤是軟件可以讀取比應該被允許還多的數據。漏洞讓特定版本的openSSL成為無需鑰匙即可開啟的“廢鎖”,入侵者每次可以翻檢戶主的64K信息,只要有足夠的耐心和時間,就可以翻檢足夠多的數據,拼湊出戶主的銀行密碼、私信等敏感數據。產生原因:數據在傳輸的兩端是不加密的。一些數據如果在傳輸過程中不加密則會泄露個人數據等信息。
總結
以上是生活随笔為你收集整理的渗透测试-逻辑漏洞出现场景、利用方式总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 物联网的DNA,LoRa价值前景
- 下一篇: aria2的使用