<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    SSRF常用的四種協議

    007bug2021-07-19 10:53:05

    0x00 前言

    最近在項目中遇到了ssrf漏洞,并探測到了目標機器上監聽127.0.0.1的redis。嘗試用ssrf打了一波,雖然最后因權限問題沒能成功利用,但也學會了很多新東西,在這里給大家分享一下。


    0x01 ssrf簡介

    SSRF(Server-side Request Forge, 服務端請求偽造):是利用一個可以發起網絡請求的服務,當作跳板來攻擊內網的其他服務的漏洞。類型可分為有回顯和無回顯兩種。


    漏洞產生原因:服務端提供從其他服務器應用獲取數據的功能,卻沒有對地址和協議做過濾,導致可利用此功能攻擊服務端本機或所在內網。


    漏洞危害:探測內網信息、攻擊內網應用


    常見場景:云服務商操作數據庫、遠程圖片加載、網站采集抓取、頭像、讓你輸入網址和ip的地方、webmail收發其他郵箱郵件、轉碼服務、在線翻譯、收藏功能等。


    漏洞利用常用協議:file、http(s)、dict、gopher


    0x02 file協議研究

    使用file協議進行的任意文件讀取算是ssrf最簡單的利用方式了


    首先先寫一段有ssrf漏洞的代碼,命名為ssrf.php并部署到服務器上。


    用file協議簡單測試一下,可以看到能成功利用ssrf漏洞讀取文件。file協議的格式為:file://文件路徑



    0x03 http協議研究

    http協議的利用也很簡單,就是向目標發送http請求,由于get請求的參數是直接加在url里的,所以可以探測內網那些使用get請求即可攻擊的應用。


    使用nc可以接收到發送的http數據包,結構非常簡單。


    0x04 dict協議研究

    用nc在測試機監聽,然后利用ssrf漏洞測試一下dict協議發送字符串info,看看接收方會收到什么:



    可以看到一共收到了三行數據,第一行是版本號,第二行是我們發送的數據,第三行是自動添加的QUIT。


    dict協議不支持換行符,沒有辦法進行換行,相當于一次只能執行一條命令,所以不能用來攻擊那些需要交互的應用(比如需要認證的redis)。


    0x05 gopher協議研究

    需要發送多行數據時,就要用到gopher協議,同樣使用nc簡單測試一下,可以看到接收端成功接收到了換行的數據,所以gopher協議可以用來攻擊那些需要交互的應用。


    測試過程就不全放出來了,這里直接貼我得到的結論:

    1、gopher協議會吃掉第一個字符,所以要先放一個沒有用的字符

    2、回車是\r\n,但如果直接對\r\n進行url編碼結果是不對的,因為編碼的是\ r \ n四個字符的結果,實際回車只是兩個不可見的字符,url編碼為%0d%0a

    3、直接發%可以正常接收,但是發%0d%0a就會出現數據包發不出去的問題,還需要進行一次url編碼成%250d%250a才能正常發送出去(直接用curl命令測試沒這個問題,應該是web服務器會自動進行一次url解碼導致的)


    0x06 未完成的工作

    1、在gopher協議的研究中發現%0d%0a會影響ssrf漏洞的正常利用,于是想到會不會有其他特殊符號同樣會影響ssrf,url編碼能否繞過。如果在實戰中遇到的ssrf漏洞利用需要使用特殊符號,最好先在本地測試一下。


    2、本文由小黑在實戰中遇到了ssrf和內網redis引起,那具體對redis的利用有哪些坑,比如說如何構造符合redis接收格式的數據,如何繞過?符號引起的截斷。


    3、ssrf中的http協議一般只能構造get請求,但是gopher協議實質上可以用來構造任意格式的請求,所以能不能使用gopher協議構造post請求去攻擊內網的應用呢?


    4、ssrf常見的防御手段及其bypass方法。

    urlssrf
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    SSRF常用的四種協議
    2021-07-19 10:53:05
    最近在項目中遇到了ssrf漏洞,并探測到了目標機器上監聽127.0.0.1的redis。嘗試用ssrf打了一波,雖然最后因權限問題沒能成功利用,但也學會了很多新東西,在這里給大家分享一下。
    最近在做項目的時候,測到了一個部署在云上的存在 Laravel UEditor SSRF 漏洞的站點,并且發現這個 SSRF 漏洞可以讀取到臨時憑證,這不巧了,正好最近寫了一個云環境利用的工具。打點,但,是云環境一開始還是信息收集,首先通過指紋掃描發現在目標范圍內的一個站點使用了 Laravel 框架,接著測試發現該站點存在 Laravel UEditor SSRF 漏洞。
    一般情況下利用URL解析導致SSRF過濾被繞過基本上都是因為后端通過不正確的正則表達式對URL進行了解析。該方式主要是利用URL解析器和URL請求器之間的差異性發起攻擊,由于不同的編程語言實現URL解析和請求是不一樣的,所以很難驗證一個URL是否合法。下圖展示了cURL請求函數與其他語言解析函數結合使用時,由于差異性造成的漏洞。
    一般情況下,SSRF針對的都是一些外網無法訪問的內網,所以需要SSRF使目標后端去訪問內網,進而達到我們攻擊內網的目的。
    Facebook 開發了一種新工具,允許安全專家在其軟件中查找服務器端請求偽造 (SSRF) 漏洞。
    FastCGI與PHP-FPM FastCGI 快速通用網關接口(Fast Common Gateway Interface/FastCGI)是一種讓交互程序與Web服務器通信的協議。FastCGI是早期通用網關接口(CGI)的增強版本。FastCGI致力于減少網頁服務器與CGI程序之間交互的開銷,從而使[服務器可以同時處理更多的網頁請求。
    利用SSRF滲透內網主機
    2021-12-26 07:39:35
    接下來PHP解析器會解析php.ini文件,初始化執行環境,然后處理請求,再以規定CGI規定的格式返回處理后的結果,退出進程,Web server再把結果返回給瀏覽器。這就是一個完整的動態PHP Web訪問流程。
    起源是在某個數據包里看到url=這個關鍵字,當時第一想到會不會有SSRF漏洞。
    從VMware vCenter SSRF漏洞調試來看系統模塊調用與認證機制。
    web服務器經常需要從別的服務器獲取數據,如果獲取數據的服務器地址可控,攻擊者就可以通過web服務器自定義向別的服務器發出請求,本期我們聊一下ssrf漏洞原理和利用.快來一起看看吧
    007bug
    暫無描述
      亚洲 欧美 自拍 唯美 另类