目次
1. 脆弱性の背景
2. 脆弱性の説明
3. 影響を受けるバージョン
4. 脆弱性の再発
5. 脆弱性の分析と悪用
6. 修復の提案
ホームページ 運用・保守 安全性 Gogs の任意のユーザー ログインの脆弱性インスタンスの分析

Gogs の任意のユーザー ログインの脆弱性インスタンスの分析

May 11, 2023 pm 04:43 PM
gogs

1. 脆弱性の背景

Gogs は、GitHub に似た (Git ベースの) オープン ソース ファイル/コード管理システムです。Gogs の目標は、セルフビルドを行うための最もシンプル、最速、簡単な方法を作成することです。サービス Git サーブ。 Go 言語で開発された Gogs は、スタンドアロン バイナリとして配布でき、Linux、Mac OS X、Windows、ARM プラットフォームなど、Go 言語でサポートされるすべてのプラットフォームをサポートします。

2. 脆弱性の説明

gogs は、構築が簡単なセルフサービス Git サービス プラットフォームで、インストールが簡単、クロスプラットフォーム、軽量、ユーザーが多いという特徴があります。 0.11.66 以前のバージョンでは、(go-macaron/session ライブラリ) はセッション ID を検証しません。攻撃者は悪意のあるセッション ID を使用して任意のファイルを読み取り、ファイルのコンテンツを制御してセッションのコンテンツを制御し、次にログインすることができます。どのアカウントでも。

3. 影響を受けるバージョン

影響を受けるバージョンは次のとおりです:

Gogs 0.11.66 および以前のバージョン

4. 脆弱性の再発

(1) ubuntu 仮想マシン docker を使用して、vulhub

で gogs 環境のクローンを作成します(2) 次のコマンドを実行して gogs を起動します: docker-compose up -d

(3) その後環境が開始されたら、http://192.168.49.103:3000/install にアクセスすると、インストール ページが表示されます。インストール中に、sqlite データベースを選択し、登録機能を有効にします。

Gogs の任意のユーザー ログインの脆弱性インスタンスの分析

Gogs の任意のユーザー ログインの脆弱性インスタンスの分析

(4) Gob シリアル化を使用してセッション ファイル データを生成します。

(5) 次に、一般ユーザーアカウントを登録し、プロジェクトを作成し、新しく生成したセッションファイルを「バージョンリリース」ページにアップロードします。

Gogs の任意のユーザー ログインの脆弱性インスタンスの分析

(6) この添付ファイルの URL から、このファイルのファイル名 ./attachments/2eb7f1a2-b5ec-482e-a297-15b625d24a10 を確認します。次に、Cookie を作成します: i_like_gogits=../attachments/2/e/2eb7f1a2-b5ec-482e-a297-15b625d24a10 にアクセスすると、id=1 でログインに成功したユーザー (つまり、root) が表示されます。管理者)

Gogs の任意のユーザー ログインの脆弱性インスタンスの分析

5. 脆弱性の分析と悪用

まず、ユーザーごとにウェアハウスを作成し、制御可能なコンテンツを含むファイルをアップロードします。リリース機能により、セッションが確立されます。ファイルは条件を提供します。

探索機能を通じて、多くのユーザーのウェアハウスを見つけることができます。ユーザーのユーザー情報ページに入ると、すべてのユーザーのウェアハウスを取得できます。ユーザーのセッションを構築するために必要な情報 (uid、ユーザー名)。

Gogs の任意のユーザー ログインの脆弱性インスタンスの分析

上記の file.go コードを通じて、セッション ファイルの内容が Gob エンコーディングであることがわかりました。 P Niu によって書き込まれた、生成されたセッションのペイロード。

Gogs の任意のユーザー ログインの脆弱性インスタンスの分析

ここから、セッションを生成し、すべてのユーザーが利用できるリリース アップロード機能を使用して、偽造したセッションをサーバーにアップロードします。

デフォルトで設定された gogs およびリリース ファイルのディレクトリ構造は、attachments/fid[0]/fid[1]/fid です。セッションが保存されるディレクトリ構造は、sessions/sid[0]/sid[1]/sid です。さらに、セッション フォルダーと添付ファイル フォルダーは同じデータ フォルダーに保存されます。

Gogs の任意のユーザー ログインの脆弱性インスタンスの分析

gogs はセッションをセグメント化し、それを読み取る前に最終的なパスに構築するためです。添付ファイルとセッションは同じフォルダー内にあります。セッションを先ほどのものに変更します。ファイルのパス、すなわち ../attachments/1/7/17f4120b-1a0d-416a-b0b0-def4342ded5b、セッションを読み取る関数により、パスが session/././../attachments/1 に解決されます。 /7/17f4120b -1a0d-416a-b0b0-def4342ded5b はアップロードしたファイルで、最終的に任意のユーザーのログインを完了します。

6. 修復の提案

Gogs は、Github にアクセスして開発ブランチをダウンロードしてコンパイルすることができます。このブランチでは、この脆弱性は修正されているか、Gogs の最新バージョンにアップグレードできます。

以上がGogs の任意のユーザー ログインの脆弱性インスタンスの分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)