LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

【Web滲透】服務器端請求偽造SSRF漏洞原理解析

admin
2023年11月28日 10:20 本文熱度 791

1、漏洞簡介

SSRF(Server-Side Request Forgery:服務器端請求偽造) 是一種由攻擊者構造形成由服務端發起請求的  一個安全漏洞。一般情況下,SSRF攻擊的目標是從外網無法訪問的內部系統。正是因為它是由服務端發  起的,所以它能夠請求到與它相連而與外網隔離的內部系統。

1.1 漏洞原理

SSRF形成的原因大都是由于服務端提供了從其他服務器應用獲取數據的功能且沒有對目標地址做過濾與 限制。 通過控制功能中的發起請求的服務來當作跳板攻擊內網中其他服務。比如,通過控制前臺的請求遠程地  址加載的響應,來讓請求數據由遠程的URL域名修改為請求本地、或者內網的IP地址及服務,來造成對 內網系統的攻擊。

1.2 漏洞危害

1、掃描內網開放服務 2、向內部任意主機的任意端口發送payload來攻擊內網服務 3、DOS攻擊(請求大文件,始終保持連接Keep-Alive Always) 4、攻擊內網的web應用,例如直接SQL注入、XSS攻擊等 5、利用file、gopher、dict協議讀取本地文件、執行命令等

2、檢測與繞過

2.1 漏洞檢測

假設一個漏洞場景:某網站有一個在線加載功能可以把指定的遠程圖片加載到本地,功能鏈接如下:http://www.xxx.com/image.php?image=http://www.xxc.com/a.jpg 那么網站請求的大概步驟應該是類似以下: 用戶輸入圖片地址->請求發送到服務端解析->服務端請求鏈接地址的圖片數據->獲取請求的數據加載到 前臺顯示。 這個過程中可能出現問題的點就在于請求發送到服務端的時候,系統沒有效驗前臺給定的參數是不是允 許訪問的地址域名,例如,如上的鏈接可以修改為:http://www.xxx.com/image.php?image=http://127.0.0.1:22 如上請求時則可能返回請求的端口banner。如果協議允許,甚至可以使用其他協議來讀取和執行相關 命令。例如 http://www.xxx.com/image.php?image=file:///etc/passwd http://www.xxx.com/image.php?image=dict://127.0.0.1:22/data:data2 (dict可以向服務 端口請求data data2) http://www.xxx.com/image.php?image=gopher://127.0.0.1:2233/_test (向2233端口發送數 據test,同樣可以發送POST請求) 對于不同語言實現的web系統可以使用的協議也存在不同的差異,其中:php:  http、https、file、gopher、phar、dict、ftp、ssh、telnet... java:  http、https、file、ftp、jar、netdoc、mailto...  判斷漏洞是否存在的重要前提是,請求是服務器發起的,以上鏈接即使存在并不一定代表這個請求是服  務器發起的。因此前提不滿足的情況下,不需要考慮SSRF。http://www.xxx.com/image.php?image=http://www.xxc.com/a.jpg 前端獲取鏈接后,是由js來獲取對應參數交由window.location來處理相關的請求,或者加載到當前的 iframe框架中,此時并不存在SSRF ,因為請求是本地發起,并不能產生攻擊服務端內網的需求。

2.2 漏洞出現點

分享 通過url 地址分享文章,例如如下地址:http://share.magedu.com/index.php?url=http://127.0.0.1 通過url參數的獲取來實現點擊鏈接的時候跳到指定的分享文章。如果在此功能中沒有對目標地址的范圍 做過濾與限制則就存在著SSRF漏洞。

圖片加載與下載 通過URL地址加載或下載圖片 http://image.magedu.com/image.php?image=http://127.0.0.1 圖片加載存在于很多的編輯器中,編輯器上傳圖片處,有的是加載本地圖片到服務器內,還有一些采用 加載遠程圖片的形式,本地文章加載了設定好的遠程圖片服務器上的圖片地址,如果沒對加載的參數做 限制可能造成SSRF。

圖片、文章收藏功能 http://title.magedu.com/title?title=http://title.magedu.com/as52ps63de 例如title參數是文章的標題地址,代表了一個文章的地址鏈接,請求后返回文章是否保存、收藏的返回 信息。如果保存、收藏功能采用了此種形式保存文章,則在沒有限制參數的形式下可能存在SSRF。

利用參數中的關鍵字來查找 例如以下的關鍵字:share wap url link

src source target u 3g display sourceURl imageURL domain ...

2.3 漏洞繞過

部分存在漏洞,或者可能產生SSRF的功能中做了白名單或者黑名單的處理,來達到阻止對內網服務和資 源的攻擊和訪問。因此想要達到SSRF的攻擊,需要對請求的參數地址做相關的繞過處理,常見的繞過方 式如下:

場景1:限制為http://www.xxx.com 域名時 可以嘗試采用http基本身份認證的方式繞過,http://www.xxx.com@www.xxc.com。在對@解析域名 中,不同的處理函數存在處理差異,例如:http://www.aaa.com@www.bbb.com@www.ccc.com, 在PHP的parse_url中會識別www.ccc.com,而libcurl則識別為www.bbb.com

場景2:限制請求IP不為內網地址 即限制訪問所有內網IP,可采用短網址繞過,短網址轉換。可以使用在線進制轉換,  127轉換16進制為7f,系統中表示16進制前面要加0x,8進制前加0  可以解析為127.0.0.1采用進制轉換,127.0.0.1八進制:0177.0.0.1。十六進制:0x7f.0.0.1。十進制:2130706433

   

場景3:限制請求只為http協議 采用302跳轉,百度短地址,或者使用短地址生成其他

場景4:利用句號繞過 127。0。0。1 >>> 127.0.0.1 其他繞過形式可以查看:https://www.secpulse.com/archives/65832.html

3、查看是否存在SSRF漏洞

  1. 排除法:瀏覽器F12查看源代碼看是否是在本地進行了請求 舉例:該資源地址類型為 http://www.xxx.com/a.php?image=(地址)的就可能存在SSRF漏洞。2、Dnslog等工具進行測試,查看是否被訪問 生成一個域名用于偽造請求,看漏洞服務器是否發起 DNS 解析請求,若成功訪問在 http://DNSLog.cn 上就會有解析日志。3、抓包分析發送的請求是不是由服務器的發送的,如果不是客戶端發出的請求,則有可能是,接著找 存在HTTP服務的內網地址。4、訪問日志檢查:偽造請求到自己控制的公網服務器,然后在服務器上查看訪問日志是否有來自漏洞 服務器的請求。5、掃描工具

4、Pikachu演示

4.1 SSRF(curl)

首先我們大概了解一下在PHP中curl函數是用來干什么的。curl是一個庫,能讓你通過URL和許多不同種  的服務器進行交流,并且還支持許多協議,重點是可以用來請求Web服務器。curl可以支持https認證、 http  post、ftp上傳、代理、cookies、簡單口令認證等等功能。

   

觀察URL,發現它傳遞了一個URL給后 臺

我們可以把 url 中的內容改為百度 http://127.0.0.1/vul/ssrf/ssrf_fgc.php?url=https://www.baidu.com

   

還可以利用file協議讀取本地文件

   

http://10.0.0.7:81/vul/ssrf/ssrf_curl.php?url=file:///etc/passwd


4.2 SSRF(file_get_content)

file_get_contents() 函數把整個文件讀入一個字符串中,是用于將文件的內容讀入到一個字符串中的首  選方法。如果操作系統支持,還會使用內存映射技術來增強性能。php://filter:是一種元封裝器, 設計用于數據流打開時的篩選過濾應用。 對于一體式(all-in-one)的 文件函數非常有用,類似 readfile()、 file() 和  file_get_contents(),在數據流內容讀取之前沒有機會應 用其他過濾器。php://filter  目標使用以下的參數作為它路徑的一部分。復合過濾鏈能夠在一個路徑上指定。詳細使用 這些參數可以參考具體范例。PHP: php:// - Manual

file_get_contents里面帶有php://filter 我們用這個就可以來讀取php源碼,所以我們來構造URL:

http://127.0.0.1/vul/ssrf/ssrf_fgc.php?file=php://filter/resource=ssrf.php http://127.0.0.1:8000/vul/ssrf/ssrf_fgc.php? file=php://filter/read=convert.base64-encode/resource=ssrf.php

直接使用 resource 指定 ssrf.php 文件,可以看到訪問成功

   

但是php文件被解析了,我們希望拿到網站的源代碼,那么我們需要對代碼做一層編碼,不讓他解析, 拿到之后我們再進行解碼,這樣就拿到了網站的源代碼;在read參數中加入 convert.base64-encode PHP: 轉換過濾器 - Manual

http://127.0.0.1:8000/vul/ssrf/ssrf_fgc.php?file=php://filter/read=convert.base64-encode/resource=ssrf.php

然后網頁出現了base64編碼的代碼

   

利用解碼工具或hackbar:

   


該文章在 2023/12/7 11:47:23 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
精品一区二区三区亚洲国产 | 亚洲成l人在线观看线路 | 中国国产精品视频 | 久热国产精品视频二区 | 亚洲欧洲精品一区二区三区 | 亚洲色资源在线精品 |