越權漏洞(四)完結


驗證碼、token、接口

主要進行一個工具的演示,我們在爆破或者批量注冊的時候,如果對方有輸入驗證碼進行驗證的,比如字母、數字+字母這種的,我們可以使用抓包工具burpsuite的一個插件進行實現。

一.captcha-killer插件的使用

1.下載插件:

下載地址:https://github.com/c0ny1/captcha-killer/releases/tag/0.1.2
下載箭頭所標注的地方

2.安裝插件

打開burpsuite,點擊extender下面的Extensions,然后點擊添加,然后添加我們下載好的captcha-killer文件,點擊下一步,然后關閉,就可以了。具體演示如圖所示:

接下來我們就可以看到功能后面多了一個captcha-killer,如果沒有顯示,看一下是否勾選。

3.使用工具

安裝成功以后,我們就要使用這個工具了。我在網上隨便找了一個有這個驗證的網站,聲明:只做該工具的演示,不對該網站進行任何侵入違法活動。望閱讀此篇的讀者珍惜自己的自由之身,切不可觸碰紅線。

如圖所示,上面是有賬號、密碼、驗證碼。假設我們在前期的信息收集中知道了這個賬號,現在我們就對密碼進行爆破,他這個爆破一次驗證碼就會刷新一次。可以使用我們的這個小插件。

1>右擊圖片,打開圖片地址進行抓包,將抓到的包發送到captcha-killer目錄下。(注意是圖片地址的數據包)

由於我是找的真實案例,所以打個碼。然后我們點擊captcha-killer,就可以發現數據包已經發送過去了。點擊獲取,大家可以看到已經獲取到了驗證碼

2>配置識別端口

花錢的比免費的強很多,如果有必要可以花錢搞一下

3>實戰

將登陸請求的數據包抓到,action到Intruder。攻擊模式選擇pitchfork
然后清除,payload1正常設置(參考越權漏洞(二)),payload2選擇Extension-generated - > select generator -> captcha-killer.線程要設置為1,如圖

最后就可以了,一直跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑跑,最最后發現爆破失敗。一般情況下爆破的可能性不大,但是存在一定幾率。萬一就破了呢。這只是說能提供一個思路。

二.驗證碼的繞過、復用

在我們進行爆破的時候,會有這個驗證碼驗證。一種情況是驗證碼是本地驗證,這種情況的驗證碼形同虛設,因為只要本地通過就可以,服務端是不會驗證的,所以直接抓包,進行爆破,跑就完事了。
第二種情況是驗證碼在服務端驗證,但是可以重復使用,比如第一次登錄的時候驗證碼是1234,那么在第二次輸入的時候還是1234,就是驗證碼沒有銷毀,一直存在。當然,這種情況是在數據包中看到的。咱們主要說一下這種情況,因為這種情況是稍微比較常見的。

1.驗證碼復用真實案例

思路

首先我們看到這個圖片的時候,應該想到的:驗證碼是否可以繞過、驗證碼是否可以復用,如果都不能可以使用captcha-killer。因為我已經測試了,不能繞過。我們直接看是否可以復用

驗證

1>我們先抓一個正確驗證碼的數據包,看一下回顯。(將抓到的數據包發送到repeater下

點擊send

我們可以看到回顯會提示密碼不正確。

2>我們再抓一個驗證碼錯誤的數據包,看他的回顯。

這是他的一個回顯,意思是正確的驗證碼是。。。。你輸入的驗證碼是。。。。。他會提示這個

3>接下來我們抓一個輸入正確驗證碼的數據包,修改輸入的密碼,看他會提示什么,如果沒有驗證碼復用,他應該會提示驗證碼錯誤,回顯為步驟2,如果存在驗證碼復用,那么回顯為步驟1

說明存在驗證碼復用情況,然后就可以進行爆破。

漏洞原理:服務端驗證的時候沒有將已經使用過的驗證碼銷毀
防護:將使用過的驗證碼進行銷毀,重新驗證。使用滑動驗證,選圖驗證等等

三.接口安全問題

主要有調用、遍歷、未授權、篡改等
調用案例:短信轟炸(前面介紹過)
遍歷案例:UID等
callbake回調JSONP(用微信接口,然后又給網站進行回調,可能存在跨站漏洞)
參數篡改:墨者靶場(已演示)

四.Token

Token的引入:Token是在客戶端頻繁向服務端請求數據,服務端頻繁的去數據庫查詢用戶名和密碼並進行對比,判斷用戶名和密碼正確與否,並作出相應提示,在這樣的背景下,Token便應運而生。

Token的定義:Token是服務端生成的一串字符串,以作客戶端進行請求的一個令牌,當第一次登錄后,服務器生成一個Token便將此Token返回給客戶端,以后客戶端只需帶上這個Token前來請求數據即可,無需再次帶上用戶名和密碼。

使用Token的目的:Token的目的是為了減輕服務器的壓力,減少頻繁的查詢數據庫,使服務器更加健壯。

參考鏈接:https://www.jianshu.com/p/24825a2683e6

由上面的簡單介紹,我們可以可出,如果有這個token,爆破難度會增加,甚至沒法爆破,因為token請求一次,就會改變一次。你可以再數據包中一直變換,但是如何解決這個token問題,因為,token不變那么請求的還相當於同一個數據包。那么如何解決這個問題? 猜測(一般不可能)如果它存在這個邏輯漏洞,那么token就會在前端回顯出來。具體看下面:

1>抓包

將抓取的數據包發送到intruder下,將密碼和token值選中作為爆破,進行添加

將sniper換成pitchfork

2>設置字典

1.第一個payload是密碼,還按之前的那樣導入字典、、、、第二個payload是token

2.首先點擊options,將線程設置為1,這個只能一個一個的提交,因為是回顯出來token,然后token才可以提交,如果多線程,提交的多了token取誰的。

3.向下滑,選擇這個經常

4.然后選擇這個add

5.看到數據包,選中數據包中的token值,點擊ok就可以了。

6.在payload中選擇recursive grep.

7.最后發送數據包就可以了

跑跑跑,爆破

切記:越權漏洞最重要的就是找功能點和參數值

歡迎大家關注微信公眾號:小艾搞安全


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM