Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2021-26084 — CVE-2021-26084の技術分析と概念実証エクスプロイト。これはAtlassian Confluence ServerのOGNLインジェクション脆弱性です。根本原因の分析、脆弱なパラメータのマッピング、検出ガイダンスが含まれます。 | Kitploit
ツール/GitHubGitHub/nahcusira/cve-2021-26084
脆弱性分析エクスプロイトウェブアプリケーション悪用情報収集ペネトレーションテスト学習と教育
GitHubnahcusira/cve-2021-26084

CVE-2021-26084

CVE-2021-26084の技術分析と概念実証エクスプロイト。これはAtlassian Confluence ServerのOGNLインジェクション脆弱性です。根本原因の分析、脆弱なパラメータのマッピング、検出ガイダンスが含まれます。

リポジトリを見る
112年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2021-26084

影響範囲

  • バージョン < 6.13.23
  • 6.14.0 ≤ バージョン < 7.4.11
  • 7.5.0 ≤ バージョン < 7.11.6
  • 7.12.0 ≤ バージョン < 7.12.5

原因、悪用方法

Confluence は、URL を Java クラスにマッピングして「アクション」と呼ばれるものを作成するフレームワークを使用しています。アクション URL は「.action」で終わり、confluence-.jar 内の xwork.xml と、同梱プラグインの JAR ファイル内の atlassian-plugin.xml で定義されます。各アクションには、アクション名を定義する name 属性、アクションを実行する Java クラスを定義する class 属性が少なくとも 1 つ含まれ、アクションの結果に基づいてアクション呼び出し後に表示される Velocity テンプレートを決定する result 要素が少なくとも 1 つ含まれます。アクションから返される一般的な値は「error」、「input」、「success」ですが、XWork XML の result 要素と一致する場合は任意の結果を使用できます。アクションには、指定された Java クラスの特定のメソッドを呼び出すための method 属性を含めることができます。コマンドが指定されていない場合、doDefault() メソッドが呼び出されます。以下は、createpage-entervariables アクションの action 要素です。

image

com.atlassian.confluence.pages.actions.PageVariablesAction クラスの doEnter() メソッドは、doenterpagevariables.action へのリクエストを処理し、「error」、「input」、「success」の値を返します。これにより、Velocity テンプレートが表示されます。

ここで、action 要素の「name」属性値はパス /.action に対応し、要素は error/success などに基づいてレスポンスの一部としてどのテンプレートを表示するかを示します。したがって、この例では /pages/doenterpagevariables.action にアクセスするだけで Velocity テンプレートファイルが表示されます。

image

Velocity テンプレートが HTML ページでどのように表示されるかを確認できます。

image

テンプレート内のタグ名をパラメータとして入力すると、リクエストパラメータから取得された値がレスポンスに返されていることがわかります。

image

#tag の使用方法: #tag (“attribute1”, “attribute2”, “attribute3”)

これらの属性は、レンダリング中に AbstrctTagDirective.applyAttributes() で取得されます。

image

#tag ("Hidden" "name='queryString'" "value='ahihihi'")

AbstrctTagDirective.applyAttributes() メソッドによって属性が取得された後、AbstrctUITag.doEndTag()  AbstractUITag.evaluateParams() に渡されます。

image

その後、expression の形式で WebWorkTagSupport.findValue()  OgnlValueFinder.findValue() に渡されます。

image

その後、SafeExpressionUtil.isSafeExpression() に渡されます。

image

ここで expression はコンパイルに渡され、ブラックリストがチェックされてキャッシュにプッシュされます。コンパイルステップを経ると ASTConst 形式にコンパイルされ、評価されると事前にコンパイルされた文字列が返されます。

image

入力から expression に「'」が追加されると、HTML エンティティ形式にエスケープされます。

image

エスケープが行われるのは HtmlAnnotationEscaper.annotatedValueInsert() です。

image

ここで ognl.JavaCharStream.readChar() メソッドが呼び出され、Unicode エスケープ文字が評価されるため、「\u0027」を渡すと「'」に変換されます。したがって、エスケープして OGNL 式を追加することができます。

image

ただし、次の OGNL のブラックリストを回避する必要があります。

image

「getClass」メソッドや「.class」プロパティの代わりに Array アクセサを使用することで回避できます。

queryString=aaa\u0027%2b#{\u0022\u0022[\u0022class\u0022]}%2b\u0027bbb

image

検出方法

リクエスト URI のパスコンポーネントに、次の表の「URI Path」列のいずれかの文字列が含まれるすべての HTTP トラフィックリクエストを監視します。

| URI Path | Vulnerable Parameters

/users/darkfeatures.action | featureKey

/users/enabledarkfeature.action | featureKey

/users/disabledarkfeature.action | featureKey

/login.action | token

/dologin.action | token

/signup.action | token

/dosignup.action | token

/pages/createpage-entervariables.action | queryString, linkCreation

/pages/doenterpagevariables.action | queryString

/pages/createpage.action | queryString

/pages/createpage-choosetemplate.action | queryString

/pages/docreatepagefromtemplate.action | queryString

/pages/docreatepage.action | queryString

/pages/createblogpost.action | queryString

/pages/docreateblogpost.action | queryString

/pages/copypage.action | queryString

/pages/docopypage.action | queryString

/plugins/editor-loader/editor.action | syncRev

そのようなリクエストが見つかった場合は、HTTP リクエストメソッドを確認する必要があります。リクエストメソッドが POST の場合は、HTTP リクエストのボディ内で上記の表の対応する影響を受けるパラメータを探し、リクエストメソッドが GET の場合は、HTTP リクエストのリクエスト URI 内でパラメータを探します。いずれかの影響を受けるパラメータの値に「\u0027」またはその URL エンコード形式が含まれているかどうかを確認します。含まれている場合、そのトラフィックは悪意があると見なされ、この脆弱性を悪用する攻撃が進行中である可能性があります。

ツールをダウンロード