[紅日安全]Web安全Day6 - 業務邏輯漏洞實戰***

本文由紅日安全成員: Orion 編寫,若有不當,還望斧正。git

你們好,咱們是紅日安全-Web安全***小組。此項目是關於Web安全的系列文章分享,還包含一個HTB靶場供你們練習,咱們給這個項目起了一個名字叫 Web安全實戰 ,但願對想要學習Web安全的朋友們有所幫助。每一篇文章都是於基於漏洞簡介-漏洞原理-漏洞危害-測試方法(手工測試,工具測試)-靶場測試(分爲PHP靶場、JAVA靶場、Python靶場基本上三種靶場所有涵蓋)-實戰演練(主要選擇相應CMS或者是Vulnhub進行實戰演練),若是對你們有幫助請Star鼓勵咱們創做更好文章。若是你願意加入咱們,一塊兒完善這個項目,歡迎經過郵件形式(sec-redclub@qq.com)聯繫咱們。github

業務邏輯實戰***

1.1 邏輯漏洞概述

邏輯漏洞,之因此稱爲邏輯漏洞,是因爲代碼邏輯是經過人的邏輯去判斷,每一個人都有本身的思惟,本身的思惟容易產生不一樣想法,致使編寫完程序後隨着人的思惟邏輯產生的不足,大多數邏輯漏洞沒法經過防火牆,waf等設備進行有效的安全防禦,在咱們所測試過的平臺中基本都有發現,包括任意查詢用戶信息、任意刪除等行爲;最嚴重的漏洞出如今帳號安全,包括驗證碼暴力破解、任意用戶密碼重置、交易支付、越權訪問等等。

1.2 常見的邏輯漏洞

交易支付、密碼修改、密碼找回、越權修改、越權查詢、突破限制等各種邏輯漏洞。下圖是簡單的邏輯漏洞總結,固然確定不僅這些,邏輯漏洞不少時候須要腦洞大開:數據庫

1.png?raw=true

1.3 如何挖掘邏輯漏洞

肯定業務流程--->尋找流程中能夠被操控的環節--->分析可被操控環節中可能產生的邏輯問題--->嘗試修改參數觸發邏輯問題

1.4 實例

如下實例不針對任何cms,只作演示用,有些代碼進行修改後演示

首先咱們看二個實例,咱們知道不少網站都存在我的註冊功能,設置我的權限,訪問我的的功能頁面,下面咱們看下因爲註冊功能致使的邏輯漏洞

1.4.1 批量註冊

咱們把註冊功能填寫相關信息,而後抓包

2.png?raw=true

3.png?raw=true

將數據包發送到repeater,每次修改username值,發現,只須要修改username值就能夠註冊成功用戶,圖形驗證碼無效,而且未對電話,郵箱等信息校驗,可批量註冊

4.png?raw=true

5.png?raw=true

6.png?raw=true

1.4.2 註冊功能,批量猜解用戶

一樣是註冊功能,在輸入用戶名時,發現會提示用戶名是否存在,猜想該位置能夠猜想哪些用戶註冊過該網站

7.png?raw=true

抓取該位置數據包發現,會對用戶名id進行判斷,是否存在,是否符合規則

8.png?raw=true

批量探測用戶,發現能夠批量探測已註冊過的用戶

9.png?raw=true

10.png?raw=true

11.png?raw=true

建議在提交用戶註冊信息時判斷用戶是否存在,避免批量猜解註冊用戶

既然有註冊功能,確定不可或缺的就是忘記密碼功能,忘記密碼不可或缺的就是手機驗證碼或郵箱驗證碼進行找回,但在找回中會存在驗證碼回顯、驗證碼不失效、驗證碼過短可爆破、驗證碼js校驗等等多種漏洞狀況,下面爲其中一種狀況。

1.4.3 任意密碼重置

在忘記密碼功能,咱們輸入用戶名正確後會進行短信驗證碼,經過手機驗證碼或者郵箱驗證碼

12.png?raw=true

在驗證碼功能中輸入驗證碼進行驗證,發現返回包中存在驗證碼是否成功狀況「yes」或者「no」

13.png?raw=true

14.png?raw=true

咱們將「no」修改成「yes」

15.png?raw=true

點擊下一步,發現,跳轉到了設置新密碼功能,輸入新的密碼,並登陸,發現登陸成功

16.png?raw=true

17.png?raw=true

18.png?raw=true

越權漏洞,越權又可分爲平行越權(相同用戶)、垂直越權(低權限用戶和高權限用戶)、未受權訪問(無需用戶直接操做),咱們看兩個實例,平行越權和垂直越權。

1.4.4 平行越權

登陸普通用戶test2,查看用戶敏感的頁面

19.png?raw=true

發送到repteater數據包中,看到cookie中存在username參數,修改成已存在的用戶名,發現返回包中可查看其餘用戶敏感信息

20.png?raw=true

21.png?raw=true

22.png?raw=true

1.4.5 垂直越權

在管理員中可建立普通權限用戶,發現test用戶爲編輯用戶

23.png?raw=true

使用test用戶登陸,發現和admin用戶有很大差異

24.png?raw=true

抓取admin管理員修改test用戶數據包,將該數據包在test用戶瀏覽器進行訪問

25.png?raw=true

在test用戶下訪問,可訪問,而且可修改,但所屬組只容許修改成edit、publicer、member

26.png?raw=true

在test用戶下修改當前用戶權限,level共分5個級別,1爲管理員權限

27.png?raw=true

將level值改成1

28.png?raw=true

成功修改test用戶權限

29.png?raw=true

使用test登陸,發現可操做功能已改變,說明普通用戶可越權操做

30.png?raw=true

修補建議

利用IP次數訪問限制,若是一個IP頻繁訪問一個頁面,如找回密碼等功能,能夠IP進行訪問限制。後端

驗證碼識別防禦,增長一些語音驗證碼,特殊字體驗證碼,拼圖下拉驗證碼,須要人手動操做的驗證碼,短信驗證碼一分鐘只能獲取一次驗證碼。驗證碼的生效時間安全限制,不管驗證碼是否正確都要一分鐘後就過時,不能再用。全部的用戶登陸以及註冊,都要與後端服務器進行交互,包括數據庫服務器。瀏覽器

banner.jpg

相關文章
相關標籤/搜索