36:WEB漏洞-邏輯越權之驗證碼與Token及接口


知識點

驗證碼安全
分類:圖片,手機或者郵箱,語音,視頻,操作等
原理:驗證生成或驗證過程中的邏輯問題
危害:賬戶權限泄露,短信轟炸,遍歷,任意用戶操作等
漏洞:客戶端回顯(已講),驗證碼復用,驗證碼爆破(已講),繞過等

Token安全
基本上述同理,主要驗證中可存在繞過可繼續后續測試
token爆破,token客戶端回顯等

驗證碼識別插件工具使用
captcha-killer,Pkav-Http-Fuzz,reCAPTCHA等
    captcha-killer下載:https://github.com/c0ny1/captcha-killer/releases/tag/0.1.2
    reCAPTCHA下載:https://github.com/bit4woo/reCAPTCHA/releases/tag/v1.0

接口安全問題
調用,遍歷,未授權,篡改等

調用案例:短信轟炸
遍歷案例:UID等遍歷
callback回調:JSONP
參數篡改:墨者靶場

未授權訪問與越權漏洞區別

Jboss、Jenkins、ldap、Radis、elasticsearch、MenCache、
Mongodb、Rsync、Zookeeper、Docker等未授權訪問

本課重點

  • 案例1:驗證碼識別插件及工具操作演示-實例
  • 案例2:驗證碼繞過本地及遠程驗證-本地及實例
  • 案例3:Token客戶端回顯繞過登錄爆破演示-本地
  • 案例4:某URL下載接口ID值調用遍歷測試-實例
  • 案例5:Callback自定義返回調用安全-漏洞測試-實例
  • 案例6:上述在實戰中如何做到漏洞發現-bp功能點

案例1:驗證碼識別插件及工具操作演示-實例

驗證碼識別測試網址:https://manage.yyxueche.com//panel/login.php

<1>Pkav HTTP Fuzzer驗證碼識別工具

  • 優點:免費,簡單,方便
  • 缺點:無法集成到burp等第三方工具上使用,只能在本工具上發包

<2>captcha-killer burp驗證碼識別插件

參考:

https://www.cnblogs.com/cwkiller/p/12659549.html

https://www.cnblogs.com/nul1/p/12071115.html

案例2:驗證碼繞過本地及遠程驗證-本地及實例

演示案例1&2靶場環境:pickachu

演示案例1:驗證碼復用

驗證碼可以一直使用,不需要更新

原因是驗證碼用過后未及時銷毀

演示案例2:驗證碼繞過

這里驗證碼的生成和驗證都是在前端進行,繞過方法是直接屏蔽掉前端相關的JS代碼即可。

演示案例3:真實案例

這里有一個注冊功能,給手機號發驗證短信時需要輸入驗證碼。

第一次輸入正確的驗證碼成功后,抓包,將驗證碼字段值設置為空,可以一直向手機發送短信。

案例3:Token客戶端回顯繞過登錄爆破演示-本地

靶場環境:pickachu

登錄請求包有一個隱藏字段token防止重放,這個字段值由前一個請求從后端返回

繞過方法:可以重放兩個請求,從第一個請求響應中取token值,放到第二個請求(登錄請求)中,對登錄進行暴力破解。、

參考:https://www.cnblogs.com/zhengna/p/12703113.html

案例4:某URL下載接口ID值調用遍歷測試-實例

類似枚舉遍歷

http://www.grasp.com.cn/DownFiles.aspx?id=591

遇到以上這類請求接口時,可以嘗試配合intruder模塊,枚舉ID值,看能否獲取其他編號對應的用戶信息

造成這類問題的原因是水平越權

案例5:Callback自定義返回調用安全-漏洞測試-實例

callback安全

簡要說明:

  • 1.由於瀏覽器的同源策略(域名,協議,ip端口相同),非同源域名之間傳遞會存在限制。
  • 2.JSONP(用於解決跨域數據傳輸的問題,利用了HTML里元素標簽的開放策略src引入Js文件,遠程調用動態生成JSON文件來實現數據傳遞,並以任意javascript的形式傳遞,一般使用 Callback(回調函數返回,由於沒有使用白名單的方法進行限制Callback的函數名,導致攻擊者可以自定義Callback內容,從而觸發XSS等漏洞)由瀏覽器的javascript引擎負責解釋運行。

原理分析:

  • 1.接口開發時,接收回調函數的參數值在進行拼接前未對惡意數據進行合理化處理,導致攻擊者插入惡意的HTML標簽並在返回的JSON數據格式原樣輸出;
  • 2.同時服務端未**正確設置響應頭content-type,**導致返回的json數據被瀏覽器當做Html內容進行解析,就可能造成xss等漏洞。

測試切入點:

  • 1.一個使用jsonp技術的接口,參數中包含回調函數的名稱(jasonp,callback,);
  • 2.服務端返回的json數據時,響應頭為 content-type: text/html;
  • 3.服務端未對回調函數參數進行過濾凈化。

測試步驟:

  • 1.設置代理到burpsuite;
  • 2.網站根目錄開始爬取,重點關注Ajax異步(一般頁面只會局部刷新)處理的網頁,關注重點業務;
  • 3.在HTTP history 標簽頁過濾功能過濾關鍵詞 Callback,jasonp,等請求,找到URL帶有Callback參數的鏈接。勾選Filder by file extension中的Hider,隱藏js、gif等后綴的URL);
  • 4.查看URL對應得HTTP Response的Content-Type類型是否為text/html且內容是否為json形式(帶有json數據的函數調用),如果是我們輸入的HTML標簽才會被瀏覽器解析;
  • 5.將對應的請求發送到Repeater。在callback參數值的前面加一些類似HTML的標簽,如,如callback=Testjsonp1,Go之后發現Response的內容有無影響(HTML有無被轉義,沒有轉義則存在漏洞)。也可將callback參數換為有惡意行為的HTML標簽,如callback=<img οnerrοr=alert(document.cookie) src=x />jsonp1

防御修復方案:

  • 1.定義HTTP響應中content-type為json數據格式,即Content-type:application/json;
  • 2.建立callback白名單,如果傳入的callback參數值不在名單內就阻止繼續輸出,跳轉到異常頁面;
  • 3.對callback參數進行凈化,包括不限於html實體編碼,過濾特殊字符< > 等。

原文鏈接:https://blog.csdn.net/weixin_42519551/article/details/104578440

案例6:上述在實戰中如何做到漏洞發現-bp功能點

爬蟲整個網站-->搜索特定關鍵字(比如cheackcode,id,callback等)-->快速精准找到有邏輯漏洞的點-->針對性測試


免責聲明!

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



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